sql排序怎么11在2前面

起首可以必定的是 , 之所以会呈现题目中的问题必然不是因为系统错误 , 有经验的人员知道这是数据类型的原因 , 具体我将和大师一路阐发一下:

需要这些哦
mysql
方式/
1第一步 , 建立测试表 。 起首在数据库中新建一张测试表 , 字段包罗id(int、自增)、name(varchar) , 如下图所示:

sql排序怎么11在2前面

文章插图

2第二步 , 添加数据 。 编写sql语句进行添加数据 , 如:“INSERT INTO `sqltest`.`test` (`name`) VALUES ('诸葛亮'),('孙权'),('刘备'),('周瑜'),('关羽'),('贾诩'),('张飞'),('鲁肃'),('郭嘉'),('曹操'),('庞统'),('吕蒙'),('司马懿'),('吕布'),('夏侯渊')” , 如下图所示:

sql排序怎么11在2前面

文章插图

3第三步 , int排序 。 编写sql查询 , 如“SELECT * FROM test ORDER BY id” , 发现是正常排序没有呈现如题所述环境 , 那就申明不是int类型数据问题 , 如下图所示:

sql排序怎么11在2前面

文章插图

4第四步 , 点窜本家儿键 。 我们将本家儿键id的数据类型点窜为“varchar” , 如下图所示:

sql排序怎么11在2前面

文章插图

5第五步 , varchar排序 。 依旧用
三的查询语句 , 发现呈现了如题所述环境 , 而呈现这种环境的原因是 , sql在对varchar(char)类型排序时并不是按数值大小排序 , 而是先对首位排序然后第二位、第三位……(以此类推下去) , 如下图所示:

sql排序怎么11在2前面

文章插图

6【sql排序怎么11在2前面】第六步 , 解决方案 。 sql查询时将varchar类型转换为数字进行排序 , 如:“SELECT * FROM test ORDER BY (id-0)” , 如下图所示:

sql排序怎么11在2前面

文章插图

注重事项本篇经验所用数据库为MySQL数据库
将varchar转为数值类型的方式有良多 , 这里我只列出最简洁的方式 , 别的 , 若是数据较年夜这种查询方式可能会导致机能欠安 , 最好的法子是有一个特定的字段用来排序(时候或者数值)

以上内容就是sql排序怎么11在2前面的内容啦 , 希望对你有所帮助哦!

    推荐阅读