2017-06-01 126 views
0

我有一个表是由JSON字符串组成的单个列。 JSON有多个密钥对,并且是一个字符串,因为它是原始表。在SQL中查询JSON字符串

其中一个密钥是"Ticket"并且具有美元金额值。我不确定价格是__.__格式,还是只有____。我要查询的列返回我整个字符串,如果这"Ticket"在6作为结束,在96美分或66美分,等

这是我的查询:

SELECT json FROM tablename 
WHERE json RLIKE '%"TICKET": "___6",%' 
OR json RLIKE '%"TICKET": "__._6",%' 

目前这回报作为空白。

如果美元金额以6美元结尾(如6美分),我如何获得整个字符串?

+0

标签您RDBMS(sql server,oracle等)及其版本。 – Igor

+0

在不知道数据的情况下,很难说出这有什么问题,但是这些下划线要求数据具有确切的字符数。 –

+0

你正在使用哪些DBMS? Postgres的?甲骨文? DB2?火鸟? –

回答

0

您所使用的搜索字符串,你会用什么LIKE

所以,你可以使用这样的:

select * from tablename 
where (json LIKE '%"TICKET": "___6"%' or json LIKE '%"TICKET": "__._6"%') 

或用正则表达式一个RLIKE

select * from tablename 
where json RLIKE '"TICKET":[ ]*"[0-9.]+6"' 
+0

这就是我所需要的。今天我太累了,以至于我应该将它改为正则表达式而不是LIKE通配符。谢谢。 – tbw875