我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Mysql指定某个字符串字段前面几位排序查询方式

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Mysql指定某个字符串字段前面几位排序查询方式

指定某个字符串字段前面几位排序查询

数据样例

Mysql指定某个字符串字段前面几位排序查询方式

想要结果: 

每个test_value 里面都包含 ORDER 关键字, 想根据这个关键字 前面的数字进行排序。

第一步(想办法先截取到 ORDER关键字前面的 值)

使用SUBSTRING_INDEX 函数

sql :

SELECT ID,SUBSTRING_INDEX(test_value,"ORDER",1) AS NO, test_value FROM test

结果:

Mysql指定某个字符串字段前面几位排序查询方式

第二步,直接根据NO排序即可? (有坑)

sql :

select * FROM (

SELECT ID,SUBSTRING_INDEX(test_value,"ORDER",1) AS NO, test_value FROM test

)t ORDER BY t.NO DESC

结果并不是我们想要的:

Mysql指定某个字符串字段前面几位排序查询方式

原因,之前讲过,字符串类型对应mysql排序,它是这样排的:

Mysql指定某个字符串字段前面几位排序查询方式

所以我们需要做转换成数字再排 。

第三步转换排序 

第一种方案 :

使用  CAST函数 转换类型 

  • unsigned 表示无符号,不能表示小数
  • signed 表示有符号,可以表示小数
SELECT * FROM (

SELECT ID,SUBSTRING_INDEX(test_value,"ORDER",1) AS NO, test_value FROM test

)t ORDER BY CAST(t.NO AS SIGNED)

结果OK的:

Mysql指定某个字符串字段前面几位排序查询方式

第二种方案

排序的字符串字段值后拼接 0 ,触发转换成数字

sql:

SELECT * FROM (

SELECT ID,SUBSTRING_INDEX(test_value,"ORDER",1) AS NO, test_value FROM test

)t ORDER BY t.NO+0

结果是OK的:

Mysql指定某个字符串字段前面几位排序查询方式

第三种方案:

CONVERT 函数 转换类型

  • unsigned 表示无符号,不能表示小数
  • signed 表示有符号,可以表示小数

sql:

SELECT * FROM (

SELECT ID,SUBSTRING_INDEX(test_value,"ORDER",1) AS NO, test_value FROM test

)t ORDER BY CONVERT(t.NO,SIGNED)

结果是OK的:

Mysql指定某个字符串字段前面几位排序查询方式

总结

好了,该篇到这里吧~

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Mysql指定某个字符串字段前面几位排序查询方式

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Mysql指定某个字符串字段前面几位排序查询方式

目录指定某个字符串字段前面几位排序查询数据样例第一步编程(想办法先截取到 ORDER关键字前面的 值)第二步,直接根据NO排序即可? (有坑)第三步转换排序 总结指定某个字符串字段前面几位排序查询数据样例想要结果: 每个test_val
2023-03-19

Mysql怎么指定某个字符串字段前面几位排序查询

今天小编给大家分享一下Mysql怎么指定某个字符串字段前面几位排序查询的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。指定某个
2023-07-05

编程热搜

目录