我正在使用 PostgreSQL 9.6,我有一个名为 "ItemDbModel" 的表,其中有两列,看起来像这样:
No integer,
Content jsonb
假设我放了很多记录,例如:
"No": 2, {"obj":"x","Item": {"Name": "BigDog", "Model": "NamedHusky", "Spec":"red dog"}}
"No": 4, {"obj":"x","Item": {"Name": "MidDog", "Model": "NamedPeppy", "Spec":"no hair"}}
"No": 5, {"obj":"x","Item": {"Name": "BigCat", "Model": "TomCat", "Spec":"blue color"}}
如何查询以下条件的数据:
- "Content.Item.Name" 包含 "Dog" 并且 "Content.Item.Spec" 包含 "red"。
- "Content.Item.Name" 包含 "Dog" 或者 "Content.Item.Spec" 包含 "red"。
- "Content.Item" 中任意一个 JSON 字段包含 "dog"。
并按照 "Content.Item.Name.length" 进行排序?
谢谢!
->
操作符返回一个 JSON 对象,而->>
返回文本。 - klini
代表不区分大小写的匹配,请参阅9.15.2.2. 正则表达式了解详细信息。 - klin