php - 如何在mysql查询中比较两个数组?

标签 php mysql arrays comparison

我有一个名为 mm_test 的表,如下所示:-

id    educations 
1     3,4,6,8,9

我想检查这个数组是否包含 (4,6)。如何使用 mysql 查询进行检查。 Mysql 'IN' 命令对我不起作用。

我这样查询...

select * from mm_test where educations IN (4,6);

但是这个查询返回了空结果。请任何人帮助我。

最佳答案

您可以使用 find_in_set() 执行此操作:

where find_in_set(4, educations) > 0 and
      find_in_set(6, educations) > 0

然而,这通常是低效的。问题是你的数据结构。您应该为每种教育使用一个包含一列的联结表,而不是将整数列表存储在一个非常不合适的数据结构中——一个字符串。

关于php - 如何在mysql查询中比较两个数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28941647/

相关文章:

java - 如何将数组的值设置为参数?

python - 根据二维 numpy 数组中零值的坐标在矩阵中的位置将其分组到列表中

php - switch case 在查询中被忽略

php - "Notice: Undefined variable"、 "Notice: Undefined index"、 "Warning: Undefined array key"和 "Notice: Undefined offset"使用 PHP

php - 从 PHP 数组递归计算值的方法?

php - gmdate() 在 2 个不同的 Controller (codeigniter)中返回 2 个不同的结果

mysql - 在 SELECTed = VIEW rowID 处创建 View

Mysql - 无法选择表A中存在且表B、C、D中不存在的记录

mysql - 查询内的查询速度非常慢。这有什么问题吗? mysql

javascript - Rxjs 映射和过滤数组 - 返回单个对象而不是一个数组?