MySQL选择顺序包含num

时间:2015-08-04 14:51:51

标签: mysql sql

这是我的表:

--------------
    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"

如果我不够清楚,请发表评论。 我以前没有人见过这个问题。

谢谢!

3 个答案:

答案 0 :(得分:4)

只需使用"tabs": { "textTabs": [ { "tabLabel": "\\*StudentLastName", "value": "Doe" }, { "tabLabel": "\\*StudentFirstName", "value": "John" }] } 即可。大多数数据库都支持某种形式的正则表达式,如下所示:

order by

确切的语法因数据库而异。

注意:它仅适用于order by (case when names regexp '.*[0-9].*' then 0 else 1 end), names 。我添加了通配符,因为我认为它使模式更直观。

答案 1 :(得分:0)

SELECT names FROM table1 ORDER BY SUBSTRING(names, LENGTH(names)-2, 1) DESC

以数字结尾的所有内容都将低于以字符结尾的任何内容。

答案 2 :(得分:0)

SELECT names, case when REGEXP_LIKE(names, '[[:digit:]]') then '1' else '2' end ordering_col
FROM table1
order by 2;