zoukankan      html  css  js  c++  java
  • postgresql 一些操作备忘

    1、left join 或者right join

    数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户。

    2、处理json

    官方解释地址 https://www.postgresql.org/docs/9.5/static/functions-json.html

    ->    :是获取json对象

    -->   : 是获取的字符串

    #>   : 根据路径获得json对象

    #>> :根据路径获得字符串

    举个栗子

    有个json字符串{"a":{"b":"c"}}

    select '{"a":{"b":"c"}}'::json ->'a'->>'b' as result

    返回结果

    c

    如果我获取a的时候用的是->>,也就是执行这么条语句select '{"a":{"b":"c"}}'::json ->>'a'->>'b' as result那么就会报错

    执行信息:

    [SQL]select '{"a":{"b":"c"}}'::json ->>'a'->>'b' as result

    [Err] 错误:  操作符不存在: text ->> unknown
    LINE 1: select '{"a":{"b":"c"}}'::json ->>'a'->>'b' as result
                                                 ^
    HINT:  没有匹配指定名称和参数类型的操作符. 您也许需要增加明确的类型转换.

    报错的原因呢就是就是 ->>返回的是text不是json对象所以后面的->>郁闷了就报错了。

    那我如果就想这么写怎么办呢?

    简单,把text转成json不就行了

    select ('{"a":{"b":"c"}}'::json ->>'a')::json->>'b' as result

    对了,这里的()是需要注意的如果::json之前的东西没用被括号起来那么会报错的

    select '{"a":{"b":"c"}}'::json ->>'a'::json->>'b' as result

    [SQL]select '{"a":{"b":"c"}}'::json ->>'a'::json->>'b' as result

    [Err] 错误:  json类型使用了无效的输入语法
    LINE 1: select '{"a":{"b":"c"}}'::json ->>'a'::json->>'b' as result
                                              ^
    DETAIL:  令牌 "a" 无效.
    CONTEXT:  JSON数据, 行 1: a

    由此可以推测::优先级较高

    3、

  • 相关阅读:
    LDA的整体流程
    java中字符串的用法
    verification Code
    properties
    Hash
    substring的问题
    LDA和PLSA的区别
    Step By Step(Lua环境)
    Step By Step(Lua调用C函数)
    Step By Step(Lua弱引用table)
  • 原文地址:https://www.cnblogs.com/vincentren/p/6639764.html
Copyright © 2011-2022 走看看