Expand description
JSON 字段查询增强
对应 think-orm 的 JSON 字段查询语法,支持 MySQL JSON 函数 + PostgreSQL jsonb 函数 + SQLite json_extract。
§三种方言差异
| 操作 | MySQL | PostgreSQL | SQLite |
|---|---|---|---|
| 取字段 | ->'$.field' | ->>'field' | json_extract(col, '$.field') |
| 取路径 | ->'$.a.b' | #>>'{a,b}' | json_extract(col, '$.a.b') |
| 包含键 | JSON_CONTAINS(col, '"v"', '$.k') | col @> '{"k":"v"}' | json_extract(col,'$.k')='v' |
| 数组长度 | JSON_LENGTH(col) | jsonb_array_length(col) | json_array_length(col) |
§用法
use sz_orm_query::json_query::JsonQuery;
use sz_orm_model::DbType;
// MySQL: WHERE `prefs`->'$.theme' = 'dark'
let cond = JsonQuery::new(DbType::MySQL, "prefs")
.path("theme")
.eq_string("dark");Structs§
- Json
Query - JSON 字段查询构造器
- Json
Update - JSON 字段更新构造器