您好我对mysql json_extract函数有疑问。
有两张桌子;
users
+------------------------------------+
| id | email |
+------------------------------------+
| 1 | red@google.com |
+------------------------------------+
| 2 | green@google.com |
+------------------------------------+
room
+----------------------------------------------------------------------------------+
| id | invited(json type) |
+----------------------------------------------------------------------------------+
| 1 | {"invite": [{"To": "red@google.com"}, {"To": "green@google.com"}]}
+----------------------------------------------------------------------------------+
我希望从房间表中获得受邀用户。 所以我试过
SELECT A.id, A.email
FROM users A JOIN room B ON
(A.email = json_extract(B.invited,'$.invite[*].To')
但json_extract()返回
["red@google.com", "green@google.com"]
如果我使用'json_extract(B.invited,'$ .coster [0] .To')'
有可能得到一个。但不能得到几个用户。
有什么可能吗?
答案 0 :(得分:0)
使用JSON_CONTAINS
试用。它应该是这样的:
SELECT A.id, A.email
FROM users A
JOIN room B
ON json_contains(json_extract(B.invited,'$.invite[*].To'), json_quote(A.email))