首页 热点 业界 科技快讯 数码 电子消费 通信 前沿动态 电商

最新:mysql实现将字符串字段转为数字排序或比大小

2022-06-14 06:00:44 来源 : 软件开发网

目录

将字符串字段转为数字排序或比大小

排序

比大小

sql语句字符串如何比较大小

解决方法

将字符串字段转为数字排序或比大小

mysql里面有个坑就是,有时按照某个字段的大小排序(或是比大小)发现排序有点错乱。后来才发现,是我们想当然地把对字符串字段当成数字并按照其大小排序(或是比大小),结果肯定不会是你想要的结果。

这时候需要把字符串转成数字再排序。

最简单的办法就是在字段后面加上+0

如把"123"转成数字123(以下例子全为亲测):

排序

例:

方法一:

ORDER BY "123"+0;(首推)

方法二:

ORDER BY CAST("123" AS SIGNED);

方法三:


(资料图)

ORDER BY CONVERT("123",SIGNED);比大小

例:

SELECT "123"+0;  --   结果为123SELECT "123"+0>127;  --   结果为0SELECT "123"+0>12;  --   结果为1SELECT CAST("123" AS SIGNED);    --  结果为123SELECT CONVERT("123",SIGNED)>127;   --  结果为0SELECT CONVERT("123",SIGNED)>12;   --  结果为1SELECT CAST("123" AS SIGNED);  -- 结果为123SELECT CAST("123" AS SIGNED)>127;  -- 结果为0SELECT CAST("123" AS SIGNED)>12;   -- 结果为1

综合例子:

SELECT "123"+0>12 ORDER BY CONVERT("123",SIGNED);  --  结果为1sql语句字符串如何比较大小

需求如下,字段A是varchar类型,现在要将字段A与一个数字比较。上网搜索了一下,99%给出的方法都是cast(字段A as int),或者convent(int,字段A)。

不知道为啥,这两种方法我都试了,语法都不通过,更不用说运行了。

解决方法

写法如下:

select * from XX where 字段A+0 < 数字 + 0

是的,你没看错,就是“+0”这样一个简单的操作。

运行结果贴出来,自己看吧

以上为个人经验,希望能给大家一个参考,也希望大家多多支持软件开发网。

标签: 支持软件 希望大家 不知道为啥

相关文章

最近更新
观焦点:超萌相机 2023-03-01 12:29:37
海南百货网 2023-03-01 12:13:44
焦点热讯:宜点充 2023-02-28 10:10:16
天天关注:小铺CEO 2023-02-28 10:07:13
【世界聚看点】KaFit 2023-02-28 09:31:37
葱天下 2023-02-28 09:17:03
渔界竞钓 2023-02-28 08:15:29
焦点快看:鲸奇视频 2023-02-28 06:30:37
环球热议:萝小逗 2023-02-27 23:25:49
简讯:小码公交 2023-02-27 23:16:12
彼岸花 2023-02-27 22:32:52
时时夺宝 2023-02-27 21:37:50
天天动态:袜之源 2023-02-27 21:29:50
天天资讯:AI空气 2023-02-27 20:19:46
世界时讯:绘读 2023-02-27 20:19:41
看点:一元得购 2023-02-27 19:26:28