Mariadb
MariaDB JSON 函式
我正在使用 MariaDB 10.5,我在一個表中有一個 JSON 欄位,該欄位通常包含以下內容:
[{"Filename":"C:/Users/simon/Documents/file.ext"},{"Soil":"Sand"},{"Present":"None"},{"Value":"5000"}]
我想建構可以在數據庫中查找匹配項的查詢,所以我可能有一個QStringList包含:
Soil:Sand Value:5000
其中冒號左邊的值是 JSON 成員名稱,右邊的值是要比較的值。
我如何使用這些來構造一個查詢,其中表名是例如: datasets 和欄位是 jsonParams ?
使用 JSON_SEARCH()。
... WHERE JSON_SEARCH(value, 'one', 'Sand', NULL, '$[*].Soil') IS NOT NULL
"Soil"
如果整個值只有一個屬性,則您的 JSON_VALUE() 方法適用。看
**[DEMO fiddle](https://dbfiddle.uk/?rdbms=mariadb_10.5&fiddle=770437245be917a161893749d0e5bae4)**
完成…我像這樣使用函式JSON_VALUE:
SELECT biPK FROM datasets WHERE JSON_VALUE(jsonParams, '$[*].Soil')='Sand'
這
$$ * $$上面告訴它在數組中查找術語“Soil”的任何索引並與“Sand”進行比較。