MySQL IF语句记录

时间:2013-11-04 12:11:34

标签: php mysql

我在MySQL中有一个包含以下字段的表:

  • 一个id字段
  • 文件名或空
  • 的图片字段
  • 电话号码的相同类型字段。

我想运行一个if状态,检查该​​行是否有图像和电话号码

是的,要么将一个添加到计数器中,然后我需要通过该计数器对结果进行排序。

这可能吗?

ID   Pic   Phone
1           231
2    img    412 
3            

然后显示顺序为ID 2,1,3。

2 个答案:

答案 0 :(得分:5)

如果您的picphone列为空且已为空,则可以

select * from your_table
order by if(pic is null, 0, 1) + if(phone is null, 0, 1) desc

如果您的picphone列为空且包含空字符串,则可以

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

这会处理picphoneNULL或空字符串的情况。