Ubah WHERE
. Anda kondisi seperti ini:
WHERE mycolumn LIKE '%\_%' ESCAPE '\'
Ini adalah salah satu cara Oracle mendukung karakter pelarian. Di sini Anda mendefinisikan karakter escape dengan escape
kata kunci. Untuk detailnya, lihat tautan ini di Oracle Docs.
'_'
dan '%'
adalah karakter pengganti dalam LIKE
pernyataan yang dioperasikan dalam SQL.
_
karakter mencari keberadaan (apa saja) satu karakter tunggal. Jika Anda mencari berdasarkan columnName LIKE '_abc'
, itu akan memberi Anda hasil dengan baris yang memiliki 'aabc'
, 'xabc'
, '1abc'
, '#abc'
tapi BUKAN 'abc'
, 'abcc'
, 'xabcd'
dan seterusnya.
'%'
karakter digunakan untuk mencocokkan 0 atau lebih jumlah karakter. Artinya, jika Anda mencari berdasarkan columnName LIKE '%abc'
, itu akan memberi Anda hasil dengan memiliki 'abc'
, 'aabc'
, 'xyzabc'
dan seterusnya, tetapi tidak ada 'xyzabcd'
, 'xabcdd'
dan string lainnya yang tidak diakhiri dengan 'abc'
.
Dalam kasus Anda, Anda telah mencari dengan '%_%'
. Ini akan memberikan semua baris dengan kolom itu memiliki satu atau lebih karakter, yang berarti karakter apa pun, sebagai nilainya. Inilah mengapa Anda mendapatkan semua baris meskipun tidak ada _
di nilai kolom Anda.