Wijzig uw WHERE
staat als volgt:
WHERE mycolumn LIKE '%\_%' ESCAPE '\'
Dit is een van de manieren waarop Oracle escape-tekens ondersteunt. Hier definieert u het escape-teken met de escape
trefwoord. Zie deze link op Oracle Docs voor details.
De '_'
en '%'
zijn jokertekens in een LIKE
bediende instructie in SQL.
De _
karakter zoekt naar de aanwezigheid van (elk) één enkel karakter. Als je zoekt op columnName LIKE '_abc'
, het geeft je resultaat met rijen met 'aabc'
, 'xabc'
, '1abc'
, '#abc'
maar NIET 'abc'
, 'abcc'
, 'xabcd'
enzovoort.
De '%'
karakter wordt gebruikt voor het matchen van 0 of meer karakters. Dat betekent dat als je zoekt op columnName LIKE '%abc'
, het geeft je resultaat met 'abc'
, 'aabc'
, 'xyzabc'
enzovoort, maar geen 'xyzabcd'
, 'xabcdd'
en elke andere tekenreeks die niet eindigt op 'abc'
.
In jouw geval heb je gezocht op '%_%'
. Dit geeft alle rijen met die kolom met een of meer tekens, dat wil zeggen alle tekens, als waarde. Dit is waarom je alle rijen krijgt, ook al is er geen _
in uw kolomwaarden.