2

我正在尝试在 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')
;

...这将检查id2 是否等于“Christoffer Columbus”“Arnold Schwarzenegger”。因此,如果您在问题 1 和 2 中都回答“Christoffer Columbus”,那将是正确的。这不太好...... :-)

你能帮我解决这个问题吗?我该如何解决这个问题?

4

2 回答 2

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')
;

您需要为数组中的每一对添加类似的标准。

于 2013-01-18T17:59:37.963 回答
4

+1 @Laurence 的回答,但 FWIW 您也可以使用元组比较来表达相同的条件,如下所示:

Where
  (q.id, q.answer) IN ((2, 'Christoffer Columbus'), (4, 'Arnold Schwarzenegger'))
于 2013-01-18T18:16:37.993 回答