我在 MySQL 中有一个表,其中包含以下字段:
- 一个 id 字段
- 文件名或为空的图片字段
- 电话号码的相同类型的字段。
我想运行一个 if 语句来检查该行是否有图像和电话号码
对其中任何一个选择“是”都会在计数中添加一个,然后我需要按该计数对结果进行排序。
这可能吗?
IE
ID Pic Phone
1 231
2 img 412
3
然后显示的顺序将是 ID 2,1,3。
如果您的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
我会选择以下内容:
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
这会处理or phone
areNULL
或空字符串的两种情况。