【发布时间】:2019-11-21 17:36:13
【问题描述】:
我有一个名为 test 的表。在这个表里面有一列叫做 jsonb 的字母。此列中包含 []、["a"]、["b"]、["a"、"b"、"c"] 等数据,但没有键值。如何查询包含其中之一的所有行,例如“b”(所以,最后 2 个)?
我所拥有的目前不起作用。
我正在尝试:
SELECT *
FROM db.test
WHERE (letters->>'')::jsonb ?| array['b'];
也试过
SELECT *
FROM db.test
WHERE letters::jsonb ?| array['b'];
SELECT *
FROM db.test
WHERE letters::jsonb ? 'b';
【问题讨论】:
-
"SELECT * FROM db.test WHERE letters::jsonb ?| array['b'];"这个对我有用。你是什么意思它不起作用?会发生什么而不是工作? (尽管如果这已经是列的类型,那么转换为 jsonb 是没有意义的。)
标签: sql postgresql jsonb