Jon*_*onB 7 mysql sql-order-by
刚问了一个与这个问题很相似的问题......
目前我在声明中做了一个非常基本的OrderBy.
SELECT * FROM tablename WHERE visible=1 ORDER BY position ASC, id DESC
Run Code Online (Sandbox Code Playgroud)
这个问题是'position'的空字符串条目被视为0.因此,位置为空字符串的所有条目都出现在1,2,3,4之前.例如:
'', '', '', 1, 2, 3, 4
Run Code Online (Sandbox Code Playgroud)
要么:
0, 0, 0, 1, 2, 3, 4
Run Code Online (Sandbox Code Playgroud)
有没有办法实现以下排序:
1, 2, 3, 4, '', '', ''.
Run Code Online (Sandbox Code Playgroud)
要么:
1, 2, 3, 4, 0, 0, 0.
Run Code Online (Sandbox Code Playgroud)
我假设解决方案可能有某种替换功能,但我无法找到能够完成我所追求的功能.
Red*_*ter 15
SELECT *
FROM tablename
WHERE visible=1
ORDER BY
case when position in('', '0') then 1 else 0 end,
position ASC,
id DESC
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7828 次 |
| 最近记录: |