Php mySQL最后排序下划线

Php mySQL最后排序下划线,php,javascript,mysql,sorting,Php,Javascript,Mysql,Sorting,我的表中有一列存储字符串(它是文本列): 瓦查尔(16) 拉丁语和瑞典语 问题是,当我说“ORDER BY name ASC”时,它返回以下划线结尾的单词。这是它返回的一个示例: -a -mmddd2 -z -z3 aaa b c t _a ___- 我打赌我可以使用php进行排序,但是有没有一种简单的方法让mySQL在破折号后加下划线?我这样做是为了使它与javascript排序函数的输出相匹配 我试图得到: -a -mmddd2 -z -z3 _a ___- aaa b c t 定义排序

我的表中有一列存储字符串(它是文本列):

瓦查尔(16) 拉丁语和瑞典语

问题是,当我说“ORDER BY name ASC”时,它返回以下划线结尾的单词。这是它返回的一个示例:

-a
-mmddd2
-z
-z3
aaa
b
c
t
_a
___-
我打赌我可以使用php进行排序,但是有没有一种简单的方法让mySQL在破折号后加下划线?我这样做是为了使它与javascript排序函数的输出相匹配

我试图得到:

-a
-mmddd2
-z
-z3
_a
___-
aaa
b
c
t

定义排序顺序,如果没有可用的排序规则使用您需要的排序顺序,您可以定义自己的排序顺序,如前所述。

我不是说这是一个优雅的解决方案,但您可以尝试这样做:

select name
from customers
order by replace(name, '_', '-+') asc;

只需将+替换为将前缀下划线值放在破折号后面的内容。

请注意,使用计算的ORDER BY子句将破坏其字段索引的好处。谢谢,@MikeFlynn。修复了链接。