如何从表中提取值JSON数据?

时间:2018-04-02 19:25:39

标签: sql

我有一个名为" UNKNOWN":

的表
ID ToF Value
1   T  {"Noisy": Yes, "Ugly": Yes, "Pretty": No)
2   F  {"Noisy": Yes, "Ugly": No, "Pretty": No)
3   T  {"Noisy": Yes, "Ugly": Yes, "Pretty": No)
4   F  {"Noisy": No, "Ugly": Yes, "Pretty": No)
5   F  {"Noisy": Yes, "Ugly": Yes, "Pretty": Yes)
6   T  {"Noisy": Yes, "Ugly": Yes, "Stupid": No)

我试图提取值,因此我使用:SELECT * FROM UNKOWN WHERE CONTAINS(Value, 'Stupid)来提取包含单词Stupid的Value。但它没有返回任何东西。是否可以提取值?

2 个答案:

答案 0 :(得分:1)

试试这个:SELECT * FROM UNKOWN WHERE Value LIKE '%Stupid%' %是通配符,表示任何文字都可以在'Stupid'左侧或右侧。

答案 1 :(得分:1)

假设Value列的类型为JSON(或等效类型),答案取决于您的数据库。

在Postgres中,你should use the ? operator:

SELECT * FROM UNKNOWN WHERE Value ? 'Stupid'

对于MySQL,您应该use JSON_CONTAINS_PATH

SELECT * FROM UNKNOWN WHERE JSON_CONTAINS(Value, "all", '$.Stupid')