如何在 MYSQL 中按名称进行订单,就像在 Window 中使用订单名称一样
桌子 带有行的图片具有名称
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,......
问题:
我希望它对所有类型名称进行排序就像窗口 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
请帮助我
table
Picture with rows have name
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 order : 1.jpg,10.jpg,11.jpg,2.jpg,3.jpg,......
Issue:
I want it sort all type name like as with Window 1.jpg,2.jpg,3.jpg,4.jpg,5.jpg,6.jpg,7.jpg,8.jpg,9.jpg,10.jpg,11.jpg
and it must working with other case as
flower01.jpg,flower02.jpg,flower031.jpg,....,flower10.jpg
please help me
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
你基本上有4个选择。
You basically have 4 choices.
一种黑客方法:
编辑:另一种方法是:
其中
N
是列的最大宽度。遗憾的是,据我所知,MySQL 本身并不支持自然排序。
A hackish way to do it:
Edit: an alternative would be:
Where
N
is the maximum width of your column.Sadly, MySQL doesn't support natural sorting natively AFAIK.
ODER BY name 看到 name 是一个字符串,并相应地逐个字符地对其进行排序。您必须让 MySQL 将名称解释为数值。一种方法可能是这样的:
ODER BY name sees that name is a string and sorts it accordingly,charater by character. You have to make MySQL interpret the name as numeric value. A way might be something like this: