有Col_name一个类型的列json存储值,形式为:
| Id | Col_name |
| ----------- | ------------------ |
| 1 | ["home"] |
| 2 | ["work"] |
| 3 | ["home","work"] |
我想选择数组中的所有行,"home"即 第 1 行和第 3 行。我在文档中读写,数组必须是以下形式{"home", "work"},然后可以根据要求找到它:
SELECT Col_name
FROM Table
WHERE Col_name::varchar = ANY('{home}')
但是我有一个以不同形式存储的数组,告诉我如何解决这个问题?
既然你有一个 json 字段类型,那么你需要查看json 的操作符。
您需要将此字段的数据类型更改为
jsonb,然后您可以使用适当的运算符,特别是: