SQL:where子句的不同结果列

时间:2012-04-21 02:33:15

标签: php mysql sql

我正在尝试执行MySQL查询,这会导致每个WHERE子句都有不同的列。 就像他们的别名一样。 假设我有一个包含列和一些任意数据的表,例如字符串。

Id | Column1
0  | mango
1  | porcupine 
2  | bear
... 

我需要一个产生如下内容的查询:

    animals  | fruits
------------------------
0| porcupine | 
1| bear      | mango

如果可能的话。我已经尝试了JOIN-ing子查询,或UNION它们,但这只是覆盖了结果,这是不好的..

我将在PHP中使用它,并检查是否设置了别名列,因此我可以识别该行。 例如

if( isset($results[$i]["animals"]) ) echo "hey it's an animal, not an apple, feed it!";

编辑:...我想要一个查询,将动物和水果放入结果中的不同列。我试过这个:

SELECT * FROM ( 
 SELECT * FROM table 
  WHERE Column1 = 'porcupine' ) as porcupines
 JOIN (
 SELECT * FROM table 
  WHERE Column1 = 'mango' ) as fruits

但这不是我想要的。

1 个答案:

答案 0 :(得分:0)

在表格上创建另一列( Column2 ),以确定第1列是水果还是动物,然后创建查询:

SELECT id, column1 AS [Animal] FROM TABLE
WHERE Column2 = "Animal"
UNION
SELECT ID, column1 AS [Fruit] FROM TABLE
WHERE Column2 = "Fruit"