Kis*_*pta 3 mysql sql database
我做了一个表查询是
CREATE TABLE questions (
_id INTEGER PRIMARY KEY AUTOINCREMENT
, question TEXT
, correct_answer TEXT DEFAULT (null)
, answer1 TEXT DEFAULT (null)
, answer2 TEXT DEFAULT (null)
, answer3 TEXT DEFAULT (null)
, answer4 TEXT DEFAULT (null)
, difficulty INTEGER DEFAULT (null)
, nid INTEGER
);
Run Code Online (Sandbox Code Playgroud)
现在想要省略correct_answer列,并在answer1列中做出正确答案,在answer2,answer3,answer4中做出其他3个错误答案.但问题是目前正确答案可能是四个中的任何一个,所以我无法合并
作为示例表就像

你可以在第一行看到答案2中的正确答案,第二行正确答案在答案4中
那么我怎么只在answer1栏和answer2,answer3,answer4中分别得到正确的答案?
什么是SQL查询?或任何其他想法?
我会做这样的事情:
insert into question_new (_id, qestion, answer1, answer2, answer3, answer4)
SELECT _id, question,
correct_answer as answer1,
if (correct_answer = answer2 , answer1 , answer2) as answer2,
if (correct_answer = answer3 , answer1 , answer3) as answer3,
if (correct_answer = answer4 , answer1 , answer4) as answer4
FROM questions
Run Code Online (Sandbox Code Playgroud)
简单来说:
更新
使用添加相同的查询 case when
insert into question_new (_id, qestion, answer1, answer2, answer3, answer4)
SELECT _id, question,
correct_answer as answer1,
case when correct_answer = answer2 then answer1 else answer2 end as answer2,
case when correct_answer = answer3 then answer1 else answer3 end as answer3,
case when correct_answer = answer4 then answer1 else answer4 end as answer4
FROM questions
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
107 次 |
| 最近记录: |