Mysql json 列上的 where 子句查询具有数组值
Mysql where clause query on json column has array value
我的数据库中有以下记录。
table= defense
id Atype
1 {"Domain_name":www.pgmobile.com , "attack": true, "probability": "9.53"}
2 {"Domain_name":www.fb.com , "attack": false , "probability": "3.35"}
3 {"Domain_name":www.pub.com , "attack": true, "probability": "8.34"}
我想在 Atype 列上创建 where 子句条件。 Atype 攻击列中的哪里是真的...
例如:select * 来自防御 attack= true // 这里需要一些帮助
感谢您的帮助。
如果您的 Atype
在 table 中定义为 JSON,您可以使用此查询:
SELECT *
FROM defense
WHERE JSON_EXTRACT(Atype, '$.attack') = true;
从这里可以看出DBFiddle
For {"Domain_Name": ["www.fb.com"], "攻击": [false], "概率": [0.001]}
查询将使用 'like'
SELECT *
FROM defense
WHERE JSON_EXTRACT(Atype, '$.attack') LIKE '[false]';
我的数据库中有以下记录。
table= defense
id Atype
1 {"Domain_name":www.pgmobile.com , "attack": true, "probability": "9.53"}
2 {"Domain_name":www.fb.com , "attack": false , "probability": "3.35"}
3 {"Domain_name":www.pub.com , "attack": true, "probability": "8.34"}
我想在 Atype 列上创建 where 子句条件。 Atype 攻击列中的哪里是真的...
例如:select * 来自防御 attack= true // 这里需要一些帮助
感谢您的帮助。
如果您的 Atype
在 table 中定义为 JSON,您可以使用此查询:
SELECT *
FROM defense
WHERE JSON_EXTRACT(Atype, '$.attack') = true;
从这里可以看出DBFiddle
For {"Domain_Name": ["www.fb.com"], "攻击": [false], "概率": [0.001]}
查询将使用 'like'
SELECT *
FROM defense
WHERE JSON_EXTRACT(Atype, '$.attack') LIKE '[false]';