2017-06-01 4 views
0

私はJSON文字列で構成された単一の列であるテーブルを持っています。 JSONには複数のキーペアがあり、生のテーブルなので文字列です。SQLでのJSON文字列のクエリ

キーの1つは"Ticket"であり、金額の値があります。価格が__.__の形式であるかどうかはわかりません。ちょうど____です。これは現在は戻り

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

:私はこれが私のクエリで

など、96セント、または66セントのように、この"Ticket"は6で終了した場合、私に文字列全体を返すために、列を照会したいです空白として

ドルの金額が6で終わる場合は、どのように文字列全体を取得できますか(6セントのように)?

+0

タグあなたのRDBMS(SQL Server、Oracleなど)とそのバージョン – Igor

+0

データが分からないと、何が間違っているのか分かりにくいですが、その下線はデータの正確な文字数を必要としています。 –

+0

どのDBMSを使用していますか? Postgres?オラクル? DB2?ファイアバード? –

答えて

0

使用している検索文字列は、あなたがあなたがLIKE使用することができ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