我正在尝试在 MySQL 中配对两个数组。他们应该只匹配它的索引。这意味着如果 a = 1、b = 2 和 c = 3,数组 (1,2,3) 将匹配数组 (a,b,c) 并返回 1,2,3,而 (b,a, c) 不会。哪个应该只返回“3”。
我的代码
我有两个 arrays
正在发送到 SQL 服务器。第一个是我正在回答的问题的 ids
。第二个是答案。
我这样做了:
SELECT
id, title
FROM
`questions` q
WHERE
q.id IN (2, 4) AND q.answer IN ('Christoffer Columbus', 'Arnold Schwarzenegger')
;
... 这会检查 id
2 是否等于 'Christoffer Columbus' AND 'Arnold Schwarzenegger'。因此,如果您在问题 1 和问题 2 中都回答“Christoffer Columbus”,那么它就是正确的。这不太好……:-)
你能帮我解决这个问题吗?我该如何解决这个问题?
最佳答案
我想你正在寻找这个:
Select
id, title
From
`questions` q
Where
(q.id = 2 And q.answer = 'Christoffer Columbus') Or
(q.id = 4 And q.answer = 'Arnold Schwarzenegger')
;
您需要为数组中的每一对添加相似的条件。
关于mysql - 检查两个数组中的相同索引 : IN (1, 2,3) AND IN (A, B, C),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14404732/