我在MySQL中有一个包含以下字段的表:
我想运行一个if状态,检查该行是否有图像和电话号码
是的,要么将一个添加到计数器中,然后我需要通过该计数器对结果进行排序。
这可能吗?
即
ID Pic Phone
1 231
2 img 412
3
然后显示顺序为ID 2,1,3。
答案 0 :(得分:5)
如果您的pic
和phone
列为空且已为空,则可以
select * from your_table
order by if(pic is null, 0, 1) + if(phone is null, 0, 1) desc
如果您的pic
和phone
列为空且包含空字符串,则可以
select * from your_table
order by if(pic = '', 0, 1) + if(phone = '', 0, 1) desc
答案 1 :(得分:1)
我会选择以下内容:
SELECT * FROM table
ORDER BY (
IF(pic IS NOT NULL AND pic != '', 1, 0) +
IF(phone IS NOT NULL AND phone != '', 1, 0)
) DESC
这会处理pic
或phone
为NULL
或空字符串的情况。