我有两个表users和usergroups,它们之间没有硬关系。users表包含一个usergroup列,该列以json格式保存usergroups表中的多个usergroup\u id,usergroups表包含id和usergroup\u title列。现在的需求是通过一个查询获得所有用户的列表,该查询应该包含用户数据,usergroup\u title来自usergroups表,对应于json值。
我已经尝试了下面的查询,但是我得到了一个错误,json\ U 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\ U contains函数没有。我想要以下格式的数据:
array("user_id" => 1, "usergroup" => ["admin", "customer", "seller"])
1条答案
按热度按时间bsxbgnwa1#
既然我们知道处理多对一关系是一种可怕的方式,那就让我们继续往下说吧:
如果您的id在json中被视为字符串,那么它应该可以做到这一点,否则您需要替换
'%"'
以及'"%'
和类似的东西分开'%:'
以及',%'
.