请问这样的mysql模糊查询如何写呢,在内容里查询俩个或俩个以上的词组
如:
    title="PHP 是一种创建动态交互性站点的强有力的服务器端脚本语言" ,俩个词组是"创建"和语言    一者:若是要求title都有俩词组,如何写mysql语句呢
    二者:若是要求title任有一词组,又该如何写呢?   我知道用like '%%'可以写,如何用其他的呢?比如Regexp

解决方案 »

  1.   

    select * from tt where instr(title,'创建')>0 and instr(title,'语言')>0 selec * from tt where instr(title,'创建')>0 or instr(title,'语言')>0 
      

  2.   

    2 SELECT 'PHP 是一种创建动态交互性站点的强有力的服务器端脚本语言' REGEXP '创建|语言',
    1 SELECT 'PHP 是一种创建动态交互性站点的强有力的服务器端脚本语言' REGEXP '创建'
    AND 
    'PHP 是一种创建动态交互性站点的强有力的服务器端脚本语言' REGEXP '语言' 
    ;
      

  3.   

    一者:若是要求title都有俩词组,如何写mysql语句呢select * from table1 where title regexp '创建' and title regexp '语言'二者:若是要求title任有一词组,又该如何写呢?select * from table1 where title regexp '创建|语言'
      

  4.   

    刚测试了,用regexp  'a'配合and, 和'a|b' 比较好!instr也可行,效率比较,那个好呢? 
      

  5.   

    对字符操作效率不会高,用regexp吧
      

  6.   

    无稽之谈要看具体情况,str REGEXP string 会略慢于 instr(str , string)
    如果是复杂的匹配则REGEXP占优 ,  title regexp '创建|语言' 要快几倍于 instr... and instr...