簡體   English   中英

在MySQL中,通過對JSON列執行聯接從兩個表中獲取數據時出現問題

[英]In MySQL having issues while fetching data from two tables via performing joining on JSON column

我有兩個表用戶和用戶組,它們之間沒有硬性關系。 users表包含一個usergroup列,其中以JSON格式保存了usergroups表中的多個usergroup_id,而usergroups表則包含id和usergroup_title列。 現在,要求是通過一個查詢獲取所有用戶的列表,該查詢應包含用戶數據(來自與JSON值相對應的usergroups表中的usergroup_title)。

我曾嘗試使用以下查詢,但收到錯誤消息JSON_CONTAINS不存在。 代碼如下:

SELECT 
u.user_id,
g.id,
g.usergroup_title
FROM user u
LEFT JOIN usergroups g on JSON_CONTAINS(u.usergroup_id, CAST(g.id as JSON), '$')

我收到一個錯誤JSON_CONTAINS函數沒有。 我想要以下格式的數據:

array("user_id" => 1, "usergroup" => ["admin", "customer", "seller"])

既然我們知道這是處理多對一關系的一種可怕方法,那就讓我們繼續吧:

SELECT 
u.user_id,
g.id,
g.usergroup_title
FROM user u
LEFT JOIN usergroups g on u.usergroup_id LIKE CONCAT('%"',g.id,'"%')

如果您的ID在JSON中被視為字符串,那么它應該可以解決問題,否則您需要用'%:'',%'等替換'%"''"%'部分。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM