我在 MariaDB 数据库的表中的字段中有这个 JSON 结构:
table column name: BcDJSON
{"placards":
[
{"barcode":"???","destination":"???","weight":"???"},
{"barcode":"???","destination":"???","weight":"???"},
{etc..}
]
}
我的 sql 查询当前看起来像:
"SELECT * from table WHERE BcDJSON LIKE '%.$value.%'";
但这不会产生稳定的代码。我曾尝试使用 JSON_EXTRACT,但将一个对象转换为 MariaDB 中的一组对象:我尝试了一些变体 - 阅读文档并没有回答我的问题。JSON_EXTRACT 是我真正想在这里使用的吗?我需要返回整行 - 该 JSON 结构中存在条形码。
我尝试过的语法:(???=有效值)
SELECT * from datawork WHERE JSON_EXTRACT('BcDJSON', '$.barcode') = '???'
SELECT * from datawork WHERE JSON_EXTRACT('BcDJSON', '$.placards, $.barcode') = '???'
SELECT * from datawork WHERE JSON_EXTRACT('BcDJSON', '$.placards.$.barcode') = '???'
SELECT * from datawork WHERE JSON_EXTRACT('BcDJSON', '$.placards->$.barcode') = '???'
SELECT * from datawork WHERE JSON_EXTRACT('BcDJSON', '$.placards$.barcode') = '???'
SELECT * from datawork WHERE JSON_EXTRACT('BcDJSON', '$.placards') = '???'
SELECT * from datawork WHERE JSON_EXTRACT('BcDJSON', '$.placards', '$.barcode') = '???'
SELECT * from datawork WHERE JSON_EXTRACT('BcDJSON', '$.placards.barcode') = '???'