模糊查询带下划线和普通模糊查询能公用一条SQL吗?怎么写?(下面的只能查到带下划线的)
select * from table_name t where t.name like '%\_%'escape'\'
if flag then
V_PRO := 'select * from table_name t where t.name like '%_% ';
else
V_PRO := 'select * from table_name t where t.name like '%escape%';
EXECUTE IMMEDIATE V_PRO;
你看这样行么。动态语句
‘_’写掉了一个\
两种情况中间用or 试试
首先符号 \ 会引起引擎编译器的错误判断,一般会认为是转义字符;模糊查询条件可以多个。
基于SQL的LIKE语句实现,使用简单,但受限于LIKE语句,不适合超大数据量处理。指定必要词会加快处理速度。
使用范围:万级别的数据量,数据量超过1万条,将导致运行缓慢。可根据如下提示进行查询:
l 使用方法:直接在查询分析器中运行脚本导入数据库即可。
l 调用示例:execute proc_Common_SuperLike'id','t_test','content','20','|','[i]|o|c'
l 参数说明:id表的主键字段名称。t_test表名。content匹配内容字段名称。20选出20个记录(从顶至下匹配度越来越低)。|关键字的分隔符号。[i]|o|c一共有i,o,c三个关键字,通过|分隔,其中i是必要词。
建议你看下:MySQL模式匹配详解 http://www.data.5helpyou.com/article342.html
select * from table_name t where t.name like '%_% or t.name like '%escape%' 你看这样可以吗.