PostgreSQL - wie zu überprüfen, ob meine Daten, die einen umgekehrten Schrägstrich enthält
-
22-08-2019 - |
Frage
SELECT COUNT (*) FROM Tabelle WHERE Spalte ilike '% /%';
gibt mir die Anzahl der Werte mit "/"
Wie das gleiche für "\" tun?
Lösung
SELECT count(*)
FROM table
WHERE column ILIKE '%\\\\%';
Andere Tipps
Auszug aus dem docs :
Beachten Sie, dass der Backslash bereits eine besondere Bedeutung in Stringliterale hat, also ein Muster konstant zu schreiben, die einen umgekehrten Schrägstrich enthält, die Sie zwei Schrägstriche in einer SQL-Anweisung schreiben muss (Escape-String-Syntax unter der Annahme verwendet wird, siehe Abschnitt 4.1.2.1). So ein Muster zu schreiben, die tatsächlich einen Backslash übereinstimmt bedeutet vier Schrägstriche in der Erklärung zu schreiben. Sie können dies vermeiden, indem Sie ein anderes Escape-Zeichen mit ESCAPE Auswahl; dann ist ein Backslash nicht besonderes mehr zu mögen. (Aber es ist immer noch besondere an den Stringliteral Parser, so müssen Sie noch zwei von ihnen.)
besser noch - nicht verwenden wie nur Standardposition verwenden:
select count(*) from from table where 0 < position( E'\\' in column );
Sie müssen E'\\\\'
weil das Argument LIKE
eine regex und regex Flucht char ist bereits \
(z ~ E'\\w'
jeden String würde eine druckbare Zeichen enthalten).
Sehen Sie die doc