我试图在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',那将是正确的。那不太好......: - )
答案 0 :(得分:6)
我认为你正在寻找这个:
Select
id, title
From
`questions` q
Where
(q.id = 2 And q.answer = 'Christoffer Columbus') Or
(q.id = 4 And q.answer = 'Arnold Schwarzenegger')
;
您需要为数组中的每对添加类似的条件。
答案 1 :(得分:4)
+1 @ Laurence的回答,但是你还可以使用元组比较来表达相同的条件,如下所示:
Where
(q.id, q.answer) IN ((2, 'Christoffer Columbus'), (4, 'Arnold Schwarzenegger'))