2

我有一个有很多列的表,但有两个主要列,称为DistrictState。我的sql查询如下。

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

此查询从区列返回我的数据。

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

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

4

3 回答 3

6

你说的空是什么意思?如果是,NULL那么你应该使用COALESCE

SELECT *, COALESCE(District, State) NewDistrict
FROM...

但如果它是空的''。然后

SELECT *, IF(District = '', State, District) NewDistrict
FROM...
于 2012-11-27T09:46:54.157 回答
1
SELECT * 
FROM table 
WHERE District = '$var' 
  OR (District='' AND State='var') 
ORDER BY Date DESC
于 2012-11-27T09:49:52.797 回答
0
$query = "SELECT * FROM table WHERE District = '" . $var . "' OR State = '" . $var . "' ORDER BY Date DESC";
于 2012-11-27T09:49:20.827 回答