mysql - 如何在 SQL 中使用带有 IN 运算符的 JSON 字符串列?

标签 mysql sql json in-operator

我有一列包含 JSON 数据,我想在查询中使用该列,但我尝试了很多事情,但无法指导我如何在 SQL 中使用带有 IN 运算符的 JSON 字符串列? 我有下表和查询。

table1 
------------
id | ids    |
1  | [1,2]  |
2  | [3,4]  |
3  | [5]    |
4  | []     |
5  | [1,5,6]|
-------------

table2
------------
id | name   |
1  | raj    |
2  | mohan  |
3  | test   |
4  | name1  |
5  | hello  |
-------------



SELECT * FROM `table1` t1 
LEFT JOIN table2 t2 ON ( t2.id IN (replace(replace(t1.ids,"[",""),"]","")) )
WHERE p.id = 2

最佳答案

您可以使用JSON_CONTAINS :

SELECT * 
FROM `table1` t1 
LEFT JOIN `table2` t2
  ON JSON_CONTAINS(t1.ids, t2.id)
WHERE t1.id = 2;

<强> DBFiddle Demo

关于mysql - 如何在 SQL 中使用带有 IN 运算符的 JSON 字符串列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49334042/

相关文章:

关于表的 mysql 详细信息

mysql - 使用 $ 符号代替 %

java.sql.SQLIntegrityConstraintViolationException异常

带有 UTF8 字符的 PHP JSON

ruby-on-rails - accepts_nested_attributes_for json PUT(更新)

php - MySQL查询未在setInterval上返回最新结果

php - MySql 查询在 where 子句中返回错误值

java - 环球音乐播放器说加载媒体时出错

php - 从 SQL 创建导航栏的动态 PHP

MySQL:如果存在则插入或更新,但不基于键列