MySQL将JSON列与数组进行比较

时间:2018-12-18 09:58:05

标签: php mysql sql pdo phpmyadmin

我正在处理PHP PDO查询,我想检查JSON列是否与PHP数组相交。

$classes = [1,2,3,4,5,6,7];
|---------------------|------------------|
|      students       |       classes    |
|---------------------|------------------|
|          12         |      [1,3,6]     |
|---------------------|------------------|
|          13         |     [2,9,10]     |
|---------------------|------------------|
|          14         |     [9,8,10]     |
|---------------------|------------------|

例如,在上面的示例中,我需要让$classes = [1,2,3,4,5,6,7];数组上存在至少一个班级的所有学生,因此在这种情况下,结果应为:

|---------------------|------------------|
|      students       |       classes    |
|---------------------|------------------|
|          12         |      [1,3,6]     |
|---------------------|------------------|
|          13         |      [2,9,10]    |
|---------------------|------------------|

我试图将数组作为字符串并执行“%like%”,但由于'x,y,z'不在'a,b,x,c'中而无法正常工作。

所以我想知道我们是否可以比较存储在MySQL中作为json的两个数组,另一个是PHP数组。我需要在查询中执行此操作

谢谢

1 个答案:

答案 0 :(得分:0)

您是否尝试过使用 JSON_EXTRACT (link)?

它应该让你把它当作一个数组。

DigitalOcean HowTo(无论如何我都与他们无关)。