gpt4 book ai didi

mysql - SQL 按列中的特定字符串排序

转载 作者:行者123 更新时间:2023-11-29 03:55:52 29 4
gpt4 key购买 nike

我最近的任务是根据特定字符串对列进行排序。下面是我的表格的截图:

enter image description here

如何按以下顺序对图片列进行排序:

2017/June/06/169799_1_kYFJf.jpg
2017/February/18/169799_2_rkJ2d.jpg
2017/January/12/169799_3_23wKj.jpg
2017/March/18/169799_4_iMbw7.jpg
2017/May/18/169799_5_HwDBf.jpg

我试过 ORDER BY picture DESC 但没有成功。

不幸的是,我不允许添加新列,例如“排序”列,这将定义图像的排序编号。

最佳答案

试试这个:

SELECT *
FROM test
ORDER BY SUBSTRING(picture, LOCATE(pid, picture) + LENGTH(pid) + 1, 1) DESC

fiddle :http://sqlfiddle.com/#!9/7a334c/3

它是 MySQL 可用的各种字符串函数的组合

对于 SUBSTRING 函数,它需要您想要获取其子串的字符串、起始位置以及您想要提取的子串的长度。

那么让我们分解一下我们用于 SUBSTRING 函数的三个参数

1.) 图片 - 我们需要从中提取数字的列

2.) LOCATE(pid, picture) + LENGTH(pid) + 1 - 我们从图片列中定位包含 pid 子字符串的字符串,然后加上 pid 本身的长度,这样我们就得到了“下划线”字符,然后再次加1得到排序的“数字”..这将返回数字在pid和“下划线”字符之后的位置

3.) 1 - 这表示您需要从字符串中“剪切”或“提取”的长度,如果您有 2 位数字要提取,这将造成问题...但是现在,我们可以使用这..

http://www.w3resource.com/mysql/string-functions/mysql-substring-function.php

关于mysql - SQL 按列中的特定字符串排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44380914/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com