如何查询
之类的内容if parent = 0 then alias is network_id else alias is group_id
这只能用于查询吗?
答案 0 :(得分:0)
您可以使用CASE
声明。
select
( case when parent=0 then network_id else group_id end ) as 'xyz_id'
示例:
mysql> select date1,
case when date1='2013-11-26'
then date_format(date1, '%d %M %Y')
when date1='2013-11-27'
then 'new date literal'
else date1
end as 'dt'
from dates;
+------------+------------------+
| date1 | dt |
+------------+------------------+
| 2013-11-26 | 26 November 2013 |
| 2013-11-27 | new date literal |
| 2013-11-29 | 2013-11-29 |
| 2013-11-30 | 2013-11-30 |
| 2013-12-01 | 2013-12-01 |
+------------+------------------+
5 rows in set (0.06 sec)
答案 1 :(得分:0)
由于您不能随意重命名结果列,因为所有结果必须具有相同的列名,最接近的是:
SELECT IF(parent = 0, id, NULL) AS network_id,
IF(parent != 0, id, NULL) AS group_id
FROM ...
这只会填充network_id
或group_id
中的一个,具体取决于您的逻辑。但是,两列必须存在于所有行中,因为列对于整个结果集是通用的。