您好,我有一个关于 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,'$.invite[0].To')'
有可能得到一个。但无法获得多个用户。
有什么办法吗?
最佳答案
尝试使用 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))
关于php - 关于mysql json_extract()的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49896032/