gpt4 book ai didi

php - Mysql查询WHERE列在json数组中

转载 作者:可可西里 更新时间:2023-11-01 06:40:07 24 4
gpt4 key购买 nike

我设置了一个查询,它可以选择多项内容。

$stm = $db->query('SELECT startUser, forUser, percentage, time, taskTitle, taskDesc, color FROM admin_task WHERE forUser = "'.$queryanswer.'")');

但是对于用户来说在数据库中是这样的:

["demo","   user"]

如何查看forUser(上面的json数组)是否有demo?我什至可以检查一下吗?

最佳答案

我认为你只能在 Mysql 5.7 中实现这一点。

在 5.7 版本中,您可以执行以下操作:

SELECT JSON_EXTRACT(json_field, '$.name');

它只会从 json 对象中提取 name key

搜索带有“JavaScript”标签的所有项目:

SELECT * FROM `table` WHERE JSON_CONTAINS(json_field, '["JavaScript"]');

查找标签以“Java”开头的所有项目:

SELECT * FROM `table` WHERE JSON_SEARCH(json_field, 'one', 'Java%') IS NOT NULL;

使用“one”查找第一个匹配项或使用“all”查找所有匹配项

您可以使用 JSON 路径提取 Twitter 昵称:

SELECT name, json_field->"$.twitter" AS `twitter` FROM `user`;

您还可以在 WHERE 子句中引用 JSON 路径以仅返回具有 Twitter 帐户的用户:

SELECT name, profile->"$.twitter" AS `twitter` FROM `user` WHERE profile->"$.twitter" IS NOT NULL;

你可以做更多的事情,比如:

  • 创建 JSON 值

  • JSON 值的规范化、合并和自动包装

  • 搜索和修改 JSON 值

  • JSON 值的比较和排序

  • JSON 值的聚合

更多信息请引用:https://dev.mysql.com/doc/refman/5.7/en/json.html

关于php - Mysql查询WHERE列在json数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27448897/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com