gpt4 book ai didi

postgresql - 如何转义postgresql中的一些字符

转载 作者:行者123 更新时间:2023-11-29 12:46:57 27 4
gpt4 key购买 nike

我在 postgresql 的一列中有这些数据

{
"geometry":{
"status":"Point",
"coordinates":[
-122.421583,
37.795027
]
},

我使用他的查询

select * from students where data_json LIKE '%status%' ;

上面的查询返回结果但是这个没有

select * from students where data_json LIKE '%status:%' ;

如何解决这个问题

最佳答案

当然,第二个没有找到匹配项,值中没有 status: 文本。我想你想要:

select * from students where data_json LIKE '%"status":%' 

...然而,与您尝试对结构化数据进行文本模式匹配的大多数情况一样,这通常是一个可怕的想法,它会咬住您。只是几个问题示例:

{
"somekey": "the value is \"status\": true"
}

... 其中 "status": 显示为 text value 的一部分,即使不匹配也会匹配,并且:

{
status : "blah"
}

其中 status 没有引号,引号和冒号之间有一个空格。就 JavaScript 而言,这与 "status": 相同,但不匹配。

如果您尝试在 json 中查找字段或从 json 中提取字段,请使用 json 解析器进行操作。 PL/V8 may be of interest ,或可用于 pl/perl、pl/pythonu 等工具的 json 库。 future 的 PostgreSQL 版本将具有通过路径获取 json 键、测试 json 值是否存在等功能,但 9.2 没有。

此时您可能会想“我为什么不使用正则表达式”。不要去那里,你不想尝试用正则表达式编写一个完整的 JSON 解析器。 this blog entry is somewhat relevant .

关于postgresql - 如何转义postgresql中的一些字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15779083/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com