我正在使用 PostgreSQL jsonb 并且在我的数据库记录中有以下内容:
{"tags": "[\"apple\",\" orange\",\" pineapple\",\" fruits\"]",
"filename": "testname.jpg", "title_en": "d1", "title_ja": "1",
"description_en": "d1", "description_ja": "1"}
并且下面的两个SELECT 语句都没有检索到结果:
SELECT "photo"."id", "photo"."datadoc", "photo"."created_timestamp","photo"."modified_timestamp"
FROM "photo"
WHERE datadoc @> '{"tags":> ["apple"]}';
SELECT "photo"."id", "photo"."datadoc", "photo"."created_timestamp", "photo"."modified_timestamp"
FROM "photo"
WHERE datadoc -> 'tags' ? 'apple';
我不知道是因为在json数组字符串中添加了额外的反斜杠,或者SELECT语句不正确。
我在 Windows 10 上运行“PostgreSQL 10.1,由 Visual C++ build 1800 编译,64 位”。
PostgreSQL 文档在这里。