gpt4 book ai didi

mySQL 查询比较行和列

转载 作者:可可西里 更新时间:2023-11-01 07:35:49 26 4
gpt4 key购买 nike

我有一个测验的用户答案数据库,其中包含 8 个问题。 Q1 - Q8 都是它们自己的列,我想比较所有行并为至少回答相同问题的每个人取回一个数字。

enter image description here

所以在这里,第 5 行和第 6 行将算作 2。基本上,我试图为至少回答 5 个相同问题的每个人计算一个数字。这可以用 mySQL 查询实现吗?

编辑:

enter image description here

用户在这里输入 D B D A B C D B,匹配 2 个类似回答的测验。此处的查询将返回计数 2。

最佳答案

如果我们只使用您的单行 D B D A B C D B 进行测试,我们可以使用以下示例:

SELECT * FROM `answers` WHERE  ((CASE WHEN q1 = 'D' THEN 1 ELSE 0 END) +     
(CASE WHEN q2 = 'B' THEN 1 ELSE 0 END) +
(CASE WHEN q3 = 'D' THEN 1 ELSE 0 END) +
(CASE WHEN q4 = 'A' THEN 1 ELSE 0 END) +
(CASE WHEN q5 = 'B' THEN 1 ELSE 0 END) +
(CASE WHEN q6 = 'C' THEN 1 ELSE 0 END) +
(CASE WHEN q7 = 'D' THEN 1 ELSE 0 END) +
(CASE WHEN q8 = 'B' THEN 1 ELSE 0 END)) >= 5;

但是,如果我们想更进一步,根据表中的其他答案测试每个答案,我们可以使用以下语句:

SELECT *, (SELECT COUNT(answer_sub.idanswers) FROM `answers` answer_sub     
WHERE ((CASE WHEN answer_sub.q1 = a.q1 THEN 1 ELSE 0 END) +
(CASE WHEN answer_sub.q2 = a.q2 THEN 1 ELSE 0 END) +
(CASE WHEN answer_sub.q3 = a.q3 THEN 1 ELSE 0 END) +
(CASE WHEN answer_sub.q4 = a.q4 THEN 1 ELSE 0 END) +
(CASE WHEN answer_sub.q5 = a.q5 THEN 1 ELSE 0 END) +
(CASE WHEN answer_sub.q6 = a.q6 THEN 1 ELSE 0 END) +
(CASE WHEN answer_sub.q7 = a.q7 THEN 1 ELSE 0 END) +
(CASE WHEN answer_sub.q8 = a.q8 THEN 1 ELSE 0 END)) >= 5
AND answer_sub.idanswers <> a.idanswers) as matching
FROM `answers` a
WHERE (SELECT COUNT(answer_sub.idanswers) FROM `answers` answer_sub
WHERE ((CASE WHEN answer_sub.q1 = a.q1 THEN 1 ELSE 0 END) +
(CASE WHEN answer_sub.q2 = a.q2 THEN 1 ELSE 0 END) +
(CASE WHEN answer_sub.q3 = a.q3 THEN 1 ELSE 0 END) +
(CASE WHEN answer_sub.q4 = a.q4 THEN 1 ELSE 0 END) +
(CASE WHEN answer_sub.q5 = a.q5 THEN 1 ELSE 0 END) +
(CASE WHEN answer_sub.q6 = a.q6 THEN 1 ELSE 0 END) +
(CASE WHEN answer_sub.q7 = a.q7 THEN 1 ELSE 0 END) +
(CASE WHEN answer_sub.q8 = a.q8 THEN 1 ELSE 0 END)) >= 5
AND answer_sub.idanswers <> a.idanswers) > 0

关于mySQL 查询比较行和列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8918916/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com