-- 查询包含特定 JSON 字段的记录
-- 假设有一个表 `users`,其中有一列 `info` 是 JSON 类型,存储了用户的一些额外信息。
-- 我们想查询所有 `age` 为 30 的用户。
SELECT *
FROM users
WHERE JSON_UNQUOTE(JSON_EXTRACT(info, '$.age')) = '30';
-- 解释:
-- 1. `JSON_EXTRACT(info, '$.age')`:从 `info` 列中提取 `age` 字段的值。
-- 2. `JSON_UNQUOTE`:去掉提取出来的 JSON 值的引号,以便可以进行数值比较。
-- 3. `WHERE ... = '30'`:筛选出 `age` 等于 30 的记录。
-- 如果需要更简洁的写法,MySQL 5.7+ 支持使用 `->` 操作符和 `->>` 操作符:
-- `->` 返回带引号的 JSON 片段,`->>` 返回不带引号的纯文本值。
SELECT *
FROM users
WHERE info->>'$.age' = '30';
上一篇:linux mysql重启
下一篇:mysql查看表
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站