数据库(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\_%‘;
原因在于使用"_"作为匹配符时需要进行转义;
原文:https://www.cnblogs.com/songyuejie/p/11338816.html