1

私は形の質問データベースを持っています

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

ここで、「True」は正解のインデックスです。

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

質問と正しい答えだけを選択する必要があります。これは私がこれまでに得たものです:

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

しかし、それは質問と「answer1」または「answer2」を返します...つまり、列の名前は値である必要はありません

4

2 に答える 2

1

CASEMySQL で使用できます。

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
于 2013-01-24T02:01:53.223 に答える
0

データベース スキーマをリファクタリングできる場合は、次のように変更できます。

QuestionID、QuestionText、AnswerID、AnswerText、IsCorrect

正しい答えを得るには、次のクエリを使用します。

QuestionID = X および IsCorrect = True の質問から * を選択します

すべての回答を取得するには、次のクエリを使用します。

QuestionID = X の質問から * を選択

また、質問に対する回答を好きなだけ多くまたは少なくすることができるようになりました。

于 2013-01-24T02:02:01.073 に答える