Mysql 数据库中表的排序字段类型要怎么选择?

我们在工作中设计表的时间经常会遇到排序字段的类型选择,是选择字符串类型,还是选择类型呢?还是有更好的选择呢?

下面我们要选择用字符串做为排序字段类型

创建表跟插入数据

创建表

插入数据

查询所以记录并排序

SELECT * from test_server ORDER BY sort ASC

执行查询并排序

从上图我们可以看出上面的排序是有问题,正确的排序应该是 1,2,4,12 而现在是1,12,2,4被当成字符串来比较了。

要怎么解决上面的问题呢?就是要把字符串转换为数值类型

1,sort+0后再排序

执行查询并排序

2,使用MySQL函数CAST/CONVERT

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

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

BINARY[(N)]

CHAR[(N)]

DATE

DATETIME

DECIMAL

SIGNED [INTEGER]

TIME

UNSIGNED [INTEGER]

执行查询并排序

执行查询并排序

以方法虽然都可以解决这个问题,但是还我喜欢直接把sort字段设计为数值类型。一步到位,节省一些执行的时间。

修改表字段类型

修改表字段类型

执行查询并排序

执行查询语句

如果你还有什么好的方法可以在评论中留言交流谢谢大家。

欢迎关注老猫码坊,与老猫一起了解更多互联网科技和编程知识。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180315A1RCJG00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券