如果想要查询的结果中同时包含
关键字1 关键字2 关键字3
关键字1 关键字3 关键字2
关键字2 关键字1 关键字3
……我的查询语句是:
SELECT * FROM TAB1 WHERE USER_NAME LIKE '%关键字1%' and USER_NAME LIKE '%关键字2%' and USER_NAME LIKE '%关键字3%' 但是我不确定到底有多少个关键字,上面的查询语句只能支持三个的查询,如果用switch语句的话要写好多种情况的语句
而且有最大关键字数目的限制,请问应该怎么写才能没有最大关键字数目的限制呢?

解决方案 »

  1.   

    无妨
    读取数据,一一解析
    有一个关键字就+USER_NAME LIKE '%关键字%'
    只是拼凑字符串
      

  2.   

    根据分割符解析用户输入的关键字,一般分割符为空格,逗号之类然后修改你的sql字符串,把当前加入的关键字加进去    
    str.Format(" and USER_NAME LIKE \'%%%s%%\' ", "关键字"); strSql += str;str.Format(" and USER_NAME LIKE \'%%%s%%\' ", "关键字1"); strSql += str;...上面用for循环完成即可