首页 » PHP教程 » phpvarchar转int技巧_SQL优化varchar字符串按照int整型排序的实现筹划及机能比拟

phpvarchar转int技巧_SQL优化varchar字符串按照int整型排序的实现筹划及机能比拟

访客 2024-11-18 0

扫一扫用手机浏览

文章目录 [+]

在设计表的时候将用户的“会员卡号”创建为varchar类型,实际上用户的卡号是有规则的数字类型。
这样的设计在利用过程中并没有涌现问题,但是最近要根据“会员开好”进行排序的时候创造排序的结果有问题,详细信息如下:

SQL示例:select from user order by member_no desc limit 100;查询结果:+-----------+| member_no |+-----------+| 9000 | | 8000 | | 7000 | | 60000 | | 50000 | | 4000 | | 3000 | | 2000 | | 1000 | +-----------+

通过查询的结果创造并不是我们想想中根据数字的大小按照倒叙展示,由此创造SQL中varchar类型要进行格式化为数字类型才能达到目标。

phpvarchar转int技巧_SQL优化varchar字符串按照int整型排序的实现筹划及机能比拟

方案一:手动转换类型

手动转换类型常用做法有两种:

phpvarchar转int技巧_SQL优化varchar字符串按照int整型排序的实现筹划及机能比拟
(图片来自网络侵删)

SQL示例1:select from user order by member_no+0 desc limit 100; // 补0

SQL示例2:select from user order by member_no1 desc limit 100; // 乘1

经测试可以达到预期效果。

方案二:函数CAST/CONVERT

SQL示例1:select from user order by CAST(member_no as SIGNED) desc desc limit 100; // CAST

SQL示例2:select from user order by CONVERT(member_no,SIGNED) desc limit 100; // CONVERT

经测试可以达到预期效果。

性能比拟

那这几种方法的性能有无差别呢?我来测试一下.....

第一步:准备数据

如上图所示,准备了字段20+,数量600万+的测试数据。

第二步:依次实行SQL

+-----------++-----------+| member_no |+-----------+| 9000 | +-----------+

由此可见函数的写法要比手动转换的写法耗时要少,两种函数(CAST、CONVERT)耗时靠近。

标签:

相关文章

介绍白点控制之路,从原理到方法

白点,作为生活中常见的现象,无处不在。对于如何控制白点,许多人却感到困惑。本文将从原理出发,探讨白点的控制方法,并结合实际案例,为...

PHP教程 2025-01-03 阅读1 评论0

介绍直播王者,如何开启你的电竞直播之旅

随着电竞产业的蓬勃发展,越来越多的年轻人投身于电竞直播行业。王者荣耀作为一款备受欢迎的MOBA手游,吸引了大量玩家和观众。如何开启...

PHP教程 2025-01-03 阅读1 评论0