按PHP排序特别回声

时间:2013-11-16 08:42:15

标签: php sql

好的,我在我的数据库中有这个例子

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

1 个答案:

答案 0 :(得分:0)

你可以在SQL查询中尝试这个吗,

ORDER BY x DESC, y DESC, z DESC

对于非空WHERE y IS NOT NULL

如果不等于零,WHERE y !='0'