SQL Order by子句不按字母顺序返回

时间:2017-05-26 15:58:54

标签: mysql sql-order-by

我正在使用order by子句在MySQLWorkbench中运行查询,而我的返回表不是按字母顺序排列的。我的疑问是:

SELECT property_value FROM job_shared_context
WHERE property_key = "case-name"
Order BY property_value asc

我的回归表:

"cqroneponv;,'c"
"padding Case"
"pwTest1"
"pwTest5"
"test 1"
"test 1"
"Test Case 12"
"Test Case 2"
"test"
"test"
"Test1"
"Turtle Case"

我假设第9行和第10行的测试将在“pwTest5”和“test 1”之间进行字母顺序测试。

1 个答案:

答案 0 :(得分:0)

如果您的字符串中有引号或任何其他非字母数字符号,它们将包含在排序计算中。很明显,有空格,破折号等等......

要在查询中明确忽略它们,这样的事情应该有效:

ORDER BY TRIM(BOTH '"' FROM property_value)

当然,您可以通过嵌套TRIM调用来修剪多个字符,如下所示:

ORDER BY TRIM(BOTH '_' FROM TRIM(BOTH '"' FROM property_value))