[英]mysql. Select column as column1 where… union all select column as column2 where… See only column1 (not column2)
這里放置示例http://sqlfiddle.com/#!9/af548/2
有桌子
NumberRenamed | TopicName | LanguageId
1 Topic en 1
2 Topic es 2
3 Topic es1 2
詢問
SELECT `TopicName` AS `TopicName1` FROM `topics` WHERE `LanguageId` = 1
UNION ALL
SELECT `TopicName` AS `TopicName2` FROM `topics` WHERE `LanguageId` = 2
;
期望得到數組,像
Array
(
[0] => Array
(
[TopicName1] => Topic en
)
[1] => Array
(
[TopicName2] => Topic es
)
[2] => Array
(
[TopicName2] => Topic es1
)
)
但是看
Array
(
[0] => Array
(
[TopicName1] => Topic en
)
[1] => Array
(
[TopicName1] => Topic es
)
[2] => Array
(
[TopicName1] => Topic es1
)
)
僅查看[TopicName1]
(無[TopicName2]
)
我的查詢出了什么問題(需要更正什么)?
如果使用UNION
則列名將僅取自第一個“ select”語句。 您的查詢沒有錯。
您可以嘗試使用SQL CASE表達式
SELECT CASE `LanguageId`
WHEN '1' THEN 'TopicName1'
WHEN '2' THEN 'TopicName2'
END AS Topic,
`TopicName`
FROM Topics;
獲取輸出為
| Topic | TopicName |
|------------|-----------|
| TopicName1 | Topic en |
| TopicName2 | Topic es |
| TopicName2 | Topic es1 |
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.