我有一个包含此类信息的字段“web-1/1.,web-2/2.,web-3/3.,web-4/4.,web-5/5.”。其他寄存器可能有不同的值,例如“web-1/4.,web-2/5.,web-3/1.,web-4/2.,web-5/3”。
我想通过 web-2/来选择和排序?将是 web-2/1、web-2/2、web-2/3 等等所有包含 web-2 的字段并按最后一个数字排序
我想创建一个不同网站的特色属性脚本并指定功能编号。不同属性,不同网站不同顺序
最佳答案
我建议您查看 MySQL String Functions更具体地说 SUBSTRING_INDEX
功能。我之所以建议这个而不是 SUBSTRING
是因为斜杠之前或之后的数字可能不止一个数字,这会使第一部分和/或第二部分的长度有所不同。
示例:
SELECT `info`,
SUBSTRING_INDEX(`info`, '/', 1) AS `first_part`,
SUBSTRING_INDEX(`info`, '/', -1) AS `second_part`
FROM `table`
ORDER BY `first_part` ASC,
`second_part` ASC;
结果:
其他示例
在本例中,我使用的是 CAST
将第二部分转换为无符号整数,以防它包含其他字符,例如符号或字母。换句话说,“web-4/15”的第二部分。将是“15”,“web-4/15****”的第二部分也将是“15”。
SELECT `info`,
SUBSTRING_INDEX(`info`, '/', 1) AS `first_part`,
CAST(SUBSTRING_INDEX(`info`, '/', -1) AS UNSIGNED) `second_part`
FROM `table`
ORDER BY `first_part` ASC,
`second_part` ASC;
关于php - MYSQL 选择一段字符串并按该段排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6475936/