表 行的图片有名称
1.jpg,2.jpg,3.jpg,4.jpg,5.jpg,6.jpg,7.jpg,8.jpg,9.jpg,10.jpg,11.jpg
select * from Picture order by name
mysql顺序:1.jpg,10.jpg,11.jpg,2.jpg,3.jpg,......
我希望它像使用Window 1.jpg,2.jpg,3.jpg,4.jpg,5.jpg,6.jpg,7.jpg,8.jpg,9.jpg,10.jpg,11.jpg
并且必须与其他案例合作
flower01.jpg,flower02.jpg,flower031.jpg,....,flower10.jpg
请帮帮我
答案 0 :(得分:2)
你基本上有4个选择。
答案 1 :(得分:1)
这是一种做法的黑客方式:
... ORDER BY CAST(name AS UNSIGNED);
修改:另一种选择是:
... ORDER BY LPAD(name,N,'0');
N
是列的最大宽度。
遗憾的是,MySQL不支持原生AFAIK的自然排序。
答案 2 :(得分:0)
ODER BY name看到name是一个字符串,并按字符对其进行相应的排序。你必须让MySQL将名称解释为数值。一种方式可能是这样的:
select * from Picture order by name * 1;