mysql - 检查两个数组中的相同索引 : IN (1, 2,3) AND IN (A, B, C)

标签 mysql sql

我正在尝试在 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/

相关文章:

php - 启动 WAMP 后,mysqld.exe 立即使用大量内存(450 MB)

mysql substr 不像 php 那样工作

mysql - SQL:没有年份的两个日期之间的位置?

python - 无法连接到 Django 2.x.x Python AppEngine 中的 MySQL 服务器

php - SQL:动态扩展搜索条件

sql - 还原 SQL Server 数据库 - 失败 : 38(Reached the end of the file.)

MySql 远程访问数据库

sql - 在 Oracle 中的每个级别计算最小值的分层查询

Android 数据库选择查询 - 不显示所有记录

php - 从数据库中选择(从今天)差异最小的日期