我在MySQL中摆弄SCNGeometry
,我想知道REGEXP
命令如何与ORDER BY
一起用于例如REGEXP
的情况。 this,我们通常使用ORDER BY RIGHT(COL,3)
按列的最后3个字符排序。
我试过了这个查询
SELECT COL FROM TABLE ORDER BY (COL REGEXP "\w{3}$") ASC
但它不起作用。我能否以某种方式修复它以获得相当于RIGHT(COL,3)
?
答案 0 :(得分:1)
您可以为列添加别名,然后按别名列排序。您的查询将如下所示:
SELECT COL, (COL REGEXP "\w{3}$") AS MyOrderedCol FROM TABLE ORDER BY MyOrderedCol ASC
答案 1 :(得分:1)
col REGEXP '...'
返回true / false(实际为1/0)值。要ORDER BY
col REGEXP' ...'`您首先获得匹配的行(按任意顺序),然后是匹配。它不按最后3个字符排序。
使用ORDER BY RIGHT(col, 3)
。
别名是一种方便,而不是性能问题。
如果您要在域名末尾查找com
,请注意并非所有域名都是3个字符。所以,请使用
ORDER BY SUBSTRING_INDEX(domain, '.', -1)