首頁 >資料庫 >mysql教程 >如何根據特定欄位值查詢MySQL中的JSON資料?

如何根據特定欄位值查詢MySQL中的JSON資料?

Barbara Streisand
Barbara Streisand原創
2024-10-26 10:34:02457瀏覽

How can I Query JSON Data in MySQL Based on Specific Field Values?

在MySQL 中查詢JSON 資料

問題:

問題:

您有一個My,其中包含儲存JSON 物件的列。您需要執行根據特定 JSON 欄位值過濾結果的查詢。

解決方案:使用json_extract 函數
<code class="sql">SELECT user_id, json_data
FROM articles
WHERE json_extract(json_data, '$.title') LIKE '%CPU%';</code>

MySQL 5.7 及更高版本引入了json_extract 函數,它允許您從儲存在列中的JSON 物件中提取特定值。這允許您執行以下查詢:

範例:
<code class="sql">CREATE TABLE articles (
  id int NOT NULL,
  user_id int NOT NULL,
  json_data json NOT NULL
);
INSERT INTO articles (id, user_id, json_data) VALUES
  (1, 1, '{"url":"https://www.cpubenchmark.net/","title": "CPU Benchmarks"}'),
  (2, 1, '{"url":"http://www.ebay.com/sch/CPUs-Processors-/164/i.html","title": "Computer and Processors"}'),
  (3, 2, '{"url":"https://www.youtube.com/watch?v=tntOCGkgt98","title": "Funny Cats Compilation"}');</code>

考慮下表:
<code class="sql">+---------+--------------------------------------------------------------------------------------------------+
| user_id | json_data                                                                                        |
+---------+--------------------------------------------------------------------------------------------------+
|       1 | {"url":"https://www.cpubenchmark.net/","title": "CPU Benchmarks"}                                |
+---------+--------------------------------------------------------------------------------------------------+</code>

將執行查詢上面顯示的結果將執行查詢上面顯示的結果將執行查詢上面顯示的結果將執行查詢上面顯示的結果傳回以下結果:這示範如何使用json_extract 函數在MySQL 中過濾JSON 資料。

以上是如何根據特定欄位值查詢MySQL中的JSON資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn