php – mysql order by字段为NULL值最后
发布时间:2020-12-13 16:02:53 所属栏目:PHP教程 来源:网络整理
导读:我在order by子句中使用FIELD函数时遇到问题. 我的情况是一个产品可以有三个类别,用户可以选择什么类别来显示.所以有三种可能的查询可以形成.这些是: 查询1 SELECT *FROM my_tableWHERE main_categories_id = 2ORDER BY FIELD(product_condition,'graded','
我在order by子句中使用FIELD函数时遇到问题.
我的情况是一个产品可以有三个类别,用户可以选择什么类别来显示.所以有三种可能的查询可以形成.这些是: 查询1 SELECT * FROM my_table WHERE main_categories_id = 2 ORDER BY FIELD(product_condition,'graded','new','used'); 查询2 SELECT * FROM my_table WHERE main_categories_id = 2 ORDER BY FIELD(product_condition,'used'); 查询3 SELECT * FROM my_table WHERE main_categories_id = 2 ORDER BY FIELD(product_condition,'used','graded'); 当产品条件为NULL时,它不能正常工作,因为它始终显示具有NULL值的行.我需要这些最后出现. 我已经尝试向FIELD函数添加NULL,但这似乎不起作用. 有人知道我能做到这一点吗? 谢谢你的帮助.
你可以:
>首先明确排序列是否为NULL,然后通过其值: ORDER BY product_condition IS NULL,FIELD(...) 这是因为product_condition IS NULL对于非NULL列将为0,对于NULL列为1;以(默认)升序排列,前者显然会先到. ORDER BY FIELD(product_condition,...) DESC (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |