lixxing
2016-11-22 06:16
采纳率: 100%
浏览 966

SQL问题求解决!!!!!!!!!!

模糊查询带下划线和普通模糊查询能公用一条SQL吗?怎么写?(下面的只能查到带下划线的)

                select * from table_name t where t.name like '%\_%'escape'\'
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

6条回答 默认 最新

  • ServiceGood 2016-11-23 03:18
    已采纳

    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;

            你看这样行么。动态语句
    
    已采纳该答案
    打赏 评论
  • lixxing 2016-11-22 06:19

    ‘_’写掉了一个\

    打赏 评论
  • Cyan1009 2016-11-22 06:37

    两种情况中间用or 试试

    打赏 评论
  • DKUN 2016-11-22 09:20

    首先符号 \ 会引起引擎编译器的错误判断,一般会认为是转义字符;模糊查询条件可以多个。
    基于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是必要词。
    
    打赏 评论
  • yicp123 2016-11-22 09:24

    建议你看下:MySQL模式匹配详解 http://www.data.5helpyou.com/article342.html

    打赏 评论
  • qq_34225891 2016-11-23 02:31

    select * from table_name t where t.name like '%_% or t.name like '%escape%' 你看这样可以吗.

    打赏 评论

相关推荐 更多相似问题