PostgreSQLの - 私のデータは、バックスラッシュが含まれているかどうかを確認する方法
-
22-08-2019 - |
質問
SELECT COUNT(*)表WHERE列iLikeの '%/%' FROM
私に "/" を含む値の数を示します。
"\" のために同じことを行うには?
解決
SELECT count(*)
FROM table
WHERE column ILIKE '%\\\\%';
他のヒント
ドキュメントのからの抜粋:
あなたが(と仮定し、エスケープ文字列構文が使用されている、セクション4.1.2.1を参照)SQL文で2つのバックスラッシュを記述する必要があり、バックスラッシュが含まれているパターン定数を書くために、バックスラッシュはすでに文字列リテラルで特別な意味を持っていることに注意してください。このように、実際にリテラルのバックスラッシュにマッチするパターンを書き込むことは声明の中で4つのバックスラッシュを書くことを意味します。 ESCAPE句で他のエスケープ文字を選択することで、これを避けることができます。その後、バックスラッシュはもう好きに特別なものではありません。 (しかし、それはまだ文字列リテラルパーサに特別なので、あなたはまだそれらのうちの2つを必要とする。)
いっそのこと - ちょうど標準の位置を使用し、同様に使用しないでください。
select count(*) from from table where 0 < position( E'\\' in column );
E'\\\\'
する引数は正規表現と正規表現のエスケープ文字は、すでにLIKE
(例えば\
が印刷可能な文字を含む任意の文字列にマッチします)ですので、あなたは~ E'\\w'
を必要とします。
所属していません StackOverflow