我有一个包含许多列的表,但有两个主要列名为District
和State
。我的sql查询如下。
$query = "SELECT * FROM table WHERE District = '" . $var . "' ORDER BY Date DESC";
此查询从区列返回数据。
现在这就是我想要的。在某些行中,District
列为空,因此在这种情况下,我希望查询从State
列中提取数据。这可能吗?
可以在mysql查询中完成,还是我必须在php中写一些东西?
答案 0 :(得分:6)
NULL
,那么您应该使用COALESCE
SELECT *, COALESCE(District, State) NewDistrict
FROM...
但如果它为''
为空。然后
SELECT *, IF(District = '', State, District) NewDistrict
FROM...
答案 1 :(得分:1)
SELECT *
FROM table
WHERE District = '$var'
OR (District='' AND State='var')
ORDER BY Date DESC
答案 2 :(得分:0)
$query = "SELECT * FROM table WHERE District = '" . $var . "' OR State = '" . $var . "' ORDER BY Date DESC";