好的,我在我的数据库中有这个例子
id | x | y | z | status | statusb
1 | 20 | 12 | 13 | 1 | 2
2 | 40 | 32 | -- | 3 | 2
3 | 50 | 31 | 15 | 2 | 1
即时选择
"select * FROM table ORDER BY GREATEST(COALESCE(x, 0),COALESCE(y, 0), COALESCE(z, 0)) DESC"
每个..内部的回声就像
if (status==1) { echo $row_x style1}
if (status==2) { echo $row_x style2}
if (status==3) { echo $row_x style3}
if (statusb==1) { echo $row_y style4}
if (statusb==2) { echo $row_y style5}
我得到像
这样的东西 id3 - x50 style2
id3 - y31 style4
id2 - x40 style3
id2 - y32 style5
id1 - x20 style1
id1 - y12 style5
我需要的是
id3 - x50 style2
id2 - x40 style3
id2 - y32 style5
id3 - y31 style4
id1 - x20 style1
id1 - y12 style5
感谢Chinnu R的快速回答,问题是当创建col时,y或x可以默认为0(非空),值为0,除非用户更新..
所以我的问题是0使用答案影响查询
ORDER BY x DESC, y DESC, z desc
id | x | y | z | status | statusb
1 | 20 | 12 | 13 | 1 | 2
2 | 40 | 0 | -- | 3 | 2
3 | 50 | 31 | 15 | 2 | 1
答案 0 :(得分:0)
你可以在SQL查询中尝试这个吗,
ORDER BY x DESC, y DESC, z DESC
对于非空WHERE y IS NOT NULL
如果不等于零,WHERE y !='0'