PostgreSQL - wie zu überprüfen, ob meine Daten, die einen umgekehrten Schrägstrich enthält

StackOverflow https://stackoverflow.com/questions/706364

  •  22-08-2019
  •  | 
  •  

Frage

SELECT COUNT (*) FROM Tabelle WHERE Spalte ilike '% /%';

gibt mir die Anzahl der Werte mit "/"

Wie das gleiche für "\" tun?

War es hilfreich?

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top