-- 示例代码:查询包含特定 JSON 数据的记录
-- 假设有一个名为 `users` 的表,其中有一个 JSON 类型的字段 `profile`。
-- 我们想查询 `profile` 字段中包含特定键值对的记录。
-- 1. 查询 `profile` 中 `age` 等于 30 的所有记录
SELECT * FROM users WHERE JSON_UNQUOTE(JSON_EXTRACT(profile, '$.age')) = '30';
-- 2. 查询 `profile` 中 `city` 等于 'New York' 的所有记录
SELECT * FROM users WHERE JSON_UNQUOTE(JSON_EXTRACT(profile, '$.city')) = 'New York';
-- 3. 查询 `profile` 中 `hobbies` 数组包含 'reading' 的所有记录
SELECT * FROM users WHERE JSON_CONTAINS(profile, '"reading"', '$.hobbies');
-- 解释说明:
-- - `JSON_UNQUOTE(JSON_EXTRACT(...))` 用于提取 JSON 字段中的值,并去掉引号以便进行比较。
-- - `JSON_CONTAINS(...)` 用于检查 JSON 数组中是否包含某个值。
上一篇:mysql if else
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站