首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Postgres查询json数据

Postgres查询json数据
EN

Stack Overflow用户
提问于 2017-10-20 17:23:47
回答 1查看 43关注 0票数 0

我目前有一个类似于这样的PostgreSQL表,数据列是JSON,我试图根据JSON数据中可能存在或不存在的键来查询该表。

代码语言:javascript
运行
复制
    | A | B | C |            data                      |
    ----------------------------------------------------
    | 1 | 2 | 3 | {}                                   |
    | 2 | 3 | 3 | {"name": "jack", "message": "123"} |
    | 3 | 4 | 3 | {"name": "jill", "voice": "456"}   |
    | 4 | 2 | 3 | {"name": "bill", "email" "789"}   |

目前我有

代码语言:javascript
运行
复制
    SELECT *
    FROM (
    SELECT
     a,
     b,
     c,
     coalesce(
         CASE
         WHEN (data ->> 'message') IS NULL
           THEN NULL
         ELSE (data ->> 'message')
         END,
         '') AS message,
     coalesce(
         CASE
         WHEN (data ->> 'voice') IS NULL
           THEN NULL
         ELSE (data ->> 'voice')
         END,
         '') AS voice,
     coalesce(
         CASE
         WHEN (data ->> 'email') IS NULL
           THEN NULL
         ELSE (data ->> 'email')
         END,
         '') AS email
   FROM mytable) AS t
    WHERE (t.message = "789" OR
           t.voice = "789" OR
           t.email = "789");

我目前正在获取错误,错误:列"789“不存在

我知道可能有一种更有效的方法。任何帮助都非常感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-20 17:34:02

使用单引号t.message = '789'

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46854271

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档