Ändern Sie Ihr WHERE
Bedingung wie folgt:
WHERE mycolumn LIKE '%\_%' ESCAPE '\'
Dies ist eine der Möglichkeiten, auf die Oracle Escape-Zeichen unterstützt. Hier definieren Sie das Fluchtzeichen mit dem escape
Stichwort. Einzelheiten finden Sie unter diesem Link auf Oracle Docs.
Der '_'
und '%'
sind Platzhalter in einem LIKE
betriebene Anweisung in SQL.
Der _
character sucht nach dem Vorhandensein eines (beliebigen) einzelnen Zeichens. Wenn Sie nach columnName LIKE '_abc'
suchen , erhalten Sie ein Ergebnis mit Zeilen mit 'aabc'
, 'xabc'
, '1abc'
, '#abc'
aber NICHT 'abc'
, 'abcc'
, 'xabcd'
und so weiter.
Der '%'
Zeichen wird verwendet, um 0 oder mehr Zeichen abzugleichen. Das heißt, wenn Sie nach columnName LIKE '%abc'
suchen , es wird Ihnen ein Ergebnis mit 'abc'
geben , 'aabc'
, 'xyzabc'
und so weiter, aber kein 'xyzabcd'
, 'xabcdd'
und jede andere Zeichenfolge, die nicht mit 'abc'
endet .
In Ihrem Fall haben Sie nach '%_%'
gesucht . Dadurch werden alle Zeilen mit dieser Spalte mit einem oder mehreren Zeichen, dh beliebigen Zeichen, als Wert angegeben. Aus diesem Grund erhalten Sie alle Zeilen, obwohl kein _
vorhanden ist in Ihren Spaltenwerten.