mysql。选择列作为列 1,其中...联合所有 选择列作为列 2,其中...仅查看列 1(而不是列 2)

标签 mysql

此处放置示例 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])

我的查询有什么问题(需要纠正什么)?

最佳答案

您可以尝试使用 SQL CASE Expression

SQL Fiddle

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 |

关于mysql。选择列作为列 1,其中...联合所有 选择列作为列 2,其中...仅查看列 1(而不是列 2),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30588248/

相关文章:

php - 查找类别的mysql查询

java - JDBC连接MSQL错误 "No suitable driver found"

mysql - 执行 2 个以分号分隔的查询时出现语法错误

mysql - 截断 8gb 的 mysql 表数据并不意味着释放 8gb 的磁盘空间?

mysql - 从 mySQL 中的两个连接表中选择特定行

sql - MySQL 查询成本

php - 我该如何修复 "PHP Warning: Variable passed to each() is not an array or object"?

mysql - 使用 WHERE 和 IN 子句的 MongoDB 查询

javascript - 如何在我的 React 应用程序中实现 Sequalize API?

mysql - 最新 - 邮政编码数据库?