mysql - 基于单元格值的动态列选择

标签 mysql sql sqlite

我有一个形状的问题数据库

ID , Question , Answer1 , Answer2 , Answer3 , Answer4 , True

其中“True”是正确答案的索引:

True = 0 --> Answer1
....
True = 3 --> Answer4

我只需要选择问题和正确答案,这是我目前得到的结果:

SELECT Question , 'Answer' || (True+1) From Questions

但它会返回问题和“answer1”或“answer2”...即:我不需要的列的名称是值

最佳答案

您可以在 MySQL 中使用 CASE

SELECT  Question,
        CASE True
            WHEN 0 THEN Answer1
            WHEN 1 THEN Answer2
            WHEN 2 THEN Answer3
            WHEN 3 THEN Answer4
        END AS Answer
FROM    tableName

SELECT  Question,
        CASE 
            WHEN TRUE = 0 THEN Answer1
            WHEN TRUE = 1 THEN Answer2
            WHEN TRUE = 2 THEN Answer3
            WHEN TRUE = 3 THEN Answer4
        END AS Answer
FROM    tableName

关于mysql - 基于单元格值的动态列选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14492682/

相关文章:

php - Jquery Ajax : display jquery animation if user IP is blocked and form is not submitted to SQL table

php - SQL 找不到不为空的字符串

java - 无法在 Hibernate 中创建 session 工厂

ios - 这是什么类型的日期格式?以及如何转换它?

php - 使用 PHP 在 SQlite3 中保存十进制值

mysql - mysql 索引选择错误

sql - 单行 INSERT 是原子的吗?例如。在有 1M 列的表上?

sql - 当 Dbh 查询在 FreeSWITCH 中返回零行时,如何在 Lua 脚本中匹配 "-ERR no reply"?

android - 奇怪的 SQLiteException 并非在所有设备中

c - SQLite 和 C 的第一步