mysql查询为不同列中的同一变量赋值

时间:2012-11-27 09:43:50

标签: php mysql sql

我有一个包含许多列的表,但有两个主要列名为DistrictState。我的sql查询如下。

$query = "SELECT * FROM table WHERE District = '" . $var . "' ORDER BY Date DESC";

此查询从区列返回数据。

现在这就是我想要的。在某些行中,District列为空,因此在这种情况下,我希望查询从State列中提取数据。这可能吗?

可以在mysql查询中完成,还是我必须在php中写一些东西?

3 个答案:

答案 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";