數據庫(Oracle)中中模糊匹配查詢“_”不是單純的表示下划線的意思,表示匹配單一任何字符,如果"_"用作匹配符需要使用"\"進行轉義
下面的SQL語句會 得不到期望的結果;
SELECT * FROM procedures_v WHERE database_name
IN ('zb_dwa','zba_dwa','zba_dwd','zb_dwd','zb_ods','zba_ods')
AND procedure_name LIKE '%_d_%';
下面的SQL語句會得到期望的結果;
SELECT * FROM procedures_v WHERE database_name
IN ('zb_dwa','zba_dwa','zba_dwd','zb_dwd','zb_ods','zba_ods')
AND procedure_name LIKE '%\_d\_%';
原因在於使用"_"作為匹配符時需要進行轉義;