我有一个这样的信息“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`,-1) AS `second_part` FROM `table` ORDER BY `first_part` ASC,`second_part` ASC;
结果:
附加示例
在这个例子中,我使用CAST
将第二部分转换为无符号整数,以防其包含其他字符(如符号或字母).换句话说,第二部分“web-4/15”.将是“15”,“网络4/15 ****”的第二部分也将是“15”.
SELECT `info`,CAST(SUBSTRING_INDEX(`info`,-1) AS UNSIGNED) `second_part` FROM `table` ORDER BY `first_part` ASC,`second_part` ASC;