这是我的 table :
--------------
Names
--------------
"Ben 52"
"Dan 236"
"Carter 73"
"Harry"
"Peter 53"
"Connor 27"
"Morgan"
"Richard 675"
我想创建一个查询,将没有数字的列放在列表的末尾。这基本上就是我要创建的想法:
SELECT names FROM table1 ORDER BY ContainsNum(names) DESC
这是我应该得到的结果:
--------------
Names
--------------
"Ben 52"
"Dan 236"
"Carter 73"
"Peter 53"
"Connor 27"
"Richard 675"
"Harry"
"Morgan"
如果我不够清楚,请发表评论。 我以前没有看到有人问过这个问题。
谢谢!
最佳答案
只需使用order by
。大多数数据库都支持某种形式的正则表达式,如下所示:
order by (case when names regexp '.*[0-9].*' then 0 else 1 end),
names
确切的语法因数据库而异。
注意:它仅适用于 names regexp '[0-9]'
。我添加了通配符,因为我认为它使模式更直观。
关于MySQL select order by contains num,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31812573/