2017-06-01 127 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