php - 关于mysql json_extract()的问题

标签 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,'$.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/

相关文章:

php - 从数据库获取图像时,在 <img></img> 中设置图像大小

mysql - add_index 迁移失败,返回 "Argument out of range"

MySQL 的事件日程

jquery - Jqgrid 搜索日期不起作用

javascript - JSON 语法无法解析

php - 自定义页面从模板下拉菜单中删除

php - 批量插入/更新 PDO MySQL 查询

mysql query select not in 运行太慢

java - 动画添加到android ListView ?

php - 在不查询的情况下保持变量 PHP 的状态