使用if语句mysql的sql构造条件

时间:2013-08-28 08:51:33

标签: mysql sql if-statement

我想构造这样的sql条件。我有一辆桌车,它有id_statusid_categorystorage_address这样的字段。我需要选择({2,4})id_status的车辆,如果id_category = 4我需要检查字段storage_address是否为空或空。我该怎么做?我应该使用sql if语句吗? 我需要这样的东西:

select * from car where id_status in (2,4) and if(id_category =
4,storage_address is NOT NULL,'1=1')

1 个答案:

答案 0 :(得分:0)

试试这个:

SELECT *
FROM car
WHERE id_status in (2,4)
AND IF(
  id_category = 4,
  storage_address IS NOT NULL,
  1
)

简单地说,你不需要字符串'1=1',只需要一个普通的1作为真值。

或者你可以做到

SELECT *
FROM car
WHERE id_status in (2, 4)
AND (
  id_category != 4
  OR storage_address IS NOT NULL
)