700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > mysql中字段类型转换排序【MySQL】

mysql中字段类型转换排序【MySQL】

时间:2020-03-27 02:20:10

相关推荐

mysql中字段类型转换排序【MySQL】

数据库|mysql教程

mysql

数据库-mysql教程

微信二维码导航源码百度云,Ubuntu上下载perl,nginx 防止恶意爬虫,php地址随机,react做seolzw

表中字段server_id是varchar类型,现在我们查询数据时想以server_id排一下序,排序后的结果:

08电影网源码,vscode优化js插件,ubuntu键盘中文,jsp 发布到tomcat,宁夏爬虫,php andriod,河源抖音seo公司,自动更新网站程序源码,帝国模板源码添加lzw

select server_id from cardserver where game_id = 1 order by server_id desc limit 10;

+———–+

| server_id |

+———–+

| 8 |

| 7 |

| 6 |

| 5 |

| 4 |

| 3 |

| 2 |

| 10 |

| 1 |

+———–+

很明显,我们想要的结果应该是 10,8,7,6,5 这样的。但是这个10排在了2的后面。按照字符串来排的。其实我们是想把它当做数值来排。

java源码 橱柜,vscode鼓励插件,ubuntu 以太坊,如何更换tomcat,sqlite开发密码,华夏服务器,ecshop 插件安装方法,新手选择前端框架,家里 小爬虫,php学习网址,关键词seo优化销售,4493美图网站,网页三d旋转效果图,dede移动模板,wordpress 首页调用页面标题,家庭投资管理系统,中易广告联盟程序v9lzw

手动转换类型:

用下面的方法就可以了,使server_id+0之后再排序,问题解决了。

select server_id from cardserver where game_id = 1 order by server_id+0 desc limit 10;

+———–+

| server_id |

+———–+

| 10 |

| 8 |

| 7 |

| 6 |

| 5 |

| 4 |

| 3 |

| 2 |

| 1 |

+———–+

使用MySQL函数CAST/CONVERT:

mysql为我们提供了两个类型转换函数:CAST和CONVERT,现成的东西我们怎能放过?

CAST() 和CONVERT() 函数可用来获取一个类型的值,并产生另一个类型的值。

这个类型 可以是以下值其中的 一个:

BINARY[(N)]

CHAR[(N)]

DATE

DATETIME

DECIMAL

SIGNED [INTEGER]

TIME

UNSIGNED [INTEGER]

所以我们也可以用CAST解决问题:

select server_id from cardserver where game_id = 1 order by CAST(server_id as SIGNED) desc limit 10;

+———–+

| server_id |

+———–+

| 10 |

| 8 |

| 7 |

| 6 |

| 5 |

| 4 |

| 3 |

| 2 |

| 1 |

+———–+

也可以使用CONVERT来搞定此问题:

select server_id from cardserver where game_id = 1 order by CONVERT(server_id,SIGNED) desc limit 10;

+———–+

| server_id |

+———–+

| 10 |

| 8 |

| 7 |

| 6 |

| 5 |

| 4 |

| 3 |

| 2 |

| 1 |

+———–+

总结:

条条大道通罗马,条条小路通我家。不管是啥方法,解决问题就是好方法。当然,既然MySQL为我们提供了现成的函数。我们为何不让代码显得更漂亮些呢?呵呵。

所以MySql varchar排序推荐使用CAST或CONVERT函数。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。