我有一個products包含一JSON列的表product_logs。在這里面,它包含類似于:
{
"c8eebc99-d936-3245-bc8d-17694f4ecb58": {
"created_at": "2022-05-08T15:33:33.591166Z",
"event": "product-created",
"user": null
},
"ce7b171b-b479-332f-bf9e-54b948581179": {
"created_at": "2022-05-08T15:33:33.591174Z",
"event": "near-sell-by",
"user": null
}
}
我只想回傳有near-sell-by事件的產品行,product_logs所以我嘗試這樣做:
SELECT
products.*
FROM products,
JSON_TABLE(product_logs, '$[*]', COLUMNS (
created_at DATETIME PATH '$.created_at',
event VARCHAR(MAX) PATH '$.event'
) logs
WHERE
logs.event = 'near-sell-by'
但是,我似乎收到以下錯誤:
#1064 - 您的 SQL 語法有錯誤;檢查與您的 MariaDB 服務器版本相對應的手冊,以在第 4 行的 '(product_logs, '$[*]', COLUMNS ( created_at DATETIME PATH '$.cr...' ) 附近使用正確的語法
任何對我出錯的地方的幫助將不勝感激
uj5u.com熱心網友回復:
你好像是從另一個資料庫復制的,mysql中沒有varchar8max),語法有點復雜,你需要很好地理解json。
一個類似作業臺的gui,至少可以幫助您識別錯誤,但它不會幫助您
CREATE TABLE products (product_logs varchar(1209))
INSERT INTO products VALUES ('{ "c8eebc99-d936-3245-bc8d-17694f4ecb58": { "created_at": "2022-05-08T15:33:33.591166Z", "event": "product-created", "user": null }, "ce7b171b-b479-332f-bf9e-54b948581179": { "created_at": "2022-05-08T15:33:33.591174Z", "event": "near-sell-by", "user": null } } ')
SELECT products.*,logs.created_at,logs.event FROM products, JSON_TABLE(products.product_logs, '$.*' COLUMNS ( created_at DATETIME PATH '$.created_at', event Text PATH '$.event' )) logs WHERE logs.event = 'near-sell-by'
產品日志 | created_at | 事件
:------------------------------------------------ -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ------------------------------ | :----------------- | :-----------
{<br> "c8eebc99-d936-3245-bc8d-17694f4ecb58": {<br> "created_at": "2022-05-08T15:33:33.591166Z",<br> "event": "product-created", <br> "user": null<br> },<br> "ce7b171b-b479-332f-bf9e-54b948581179": {<br> "created_at": "2022-05-08T15:33:33.591174Z",< br> "event": "near-sell-by",<br> "user": null<br> }<br>}<br> | 2022-05-08 15:33:34 | 近賣
db<>在這里擺弄
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/470157.html
標籤:mysql sql json phpmyadmin 玛丽亚数据库
