2017-08-14 11 views
1

私は、特殊文字を持つセルの検索方法に関するクエリのためにStackoverflowを検索しています。PostgreSQL非英数字クエリ

私は別のポスト

SELECT * FROM myTable WHERE myField LIKE '%[^a-zA-Z0-9]%' 

でこれを見て、

SELECT DESCRIPTION FROM ITEM WHERE DESCRIPTION NOT LIKE '%[a-zA-Z0-9 .-]%' 

の下に、そこから私のコードをpatterendしかし、それは示す以下の結果と私のために働いていない「 - 」「」と空白。

"2016ランサーEX GT-2.0GのCVT"

"2016 MIRAGE GLX 1.2G MT"

"2016 MIRAGE G4 GLX 1.2G MT(UPG)"

「2016 MIRAGE G4 GLX 1.2G CVT(UPG)」

Iは

0の結果を返し
SELECT DESCRIPTION FROM ITEM WHERE DESCRIPTION ~* '%[^a-zA-Z0-9 ]%' 

にそれを変更しようとしました。

何か助けていただければ幸いです。私はなぜそれが他の人々のために働き、私のものではないのか混乱しています。 私は、Opensuse OSでPostgresqlとPGadminを使用しています。

答えて

0

私はPostgresのLIKEは、次のような正規表現をサポートしていることを信じていない:

WHERE DESCRIPTION NOT LIKE '%[a-zA-Z0-9 .-]%' 

しかし、あなたは代わりに、完全な正規表現にアクセスするためにチルダ演算子を使用することができます。 口頭で表現すると、私はあなたがここに欲しいロジックがあると思う:

はない任意の文字列を検索ない文字列中に存在する1つのまたは複数の英数字を持っています。これはない文字、数字、スペース、ドットまたは1つまたは複数の文字を有する任意の説明と一致します

SELECT DESCRIPTION 
FROM ITEM 
WHERE DESCRIPTION !~ '^.*[^A-Za-z0-9 .-].*$' 

は、文字列全体をカバーして右のパターンで正規表現パターンを使用しますダッシュ。

関連する問題