关于mysql的问题json_extract()

时间:2018-04-18 09:27:10

标签: php mysql json

您好我对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')'
 有可能得到一个。但不能得到几个用户。

有什么可能吗?

1 个答案:

答案 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))