我有两张桌子:
表 A
+---------+-----------------------+
| id | val(string) |
+---------+-----------------------+
| 1 | ["avc", "rdd", "asd"] |
| 2 | ["ijn", "qew"] |
| 3 | ["asd"] |
| 4 | null |
+---------+-----------------------+
表 B
+---------+-----------+
| id |val(string)|
+---------+-----------+
| 1 | rdd |
| 2 | qew |
| 3 | ijn |
+---------+-----------+
在表A中,数据以这种["avc", "rdd", "asd"]形式存储,没有办法重新制作。
您需要从表A中获取在表B的val字段的值中具有表A的val字段中的列表值之一的ID
也就是说,在输出中,我应该从表 A 中获取 id 1 和 2
像这样最简单:
对于具有类似目的的其他函数(JSON_CONTAINS、JSON_OVERLAPS),您需要
tableB.val使用 CONCAT() 将它们双引号。如果您使用 INSTR/LOCATE 字符串函数,情况也是如此。