RT。我有10多个 like 'name数字' ,不想每次都重复OR name like,有没有方法,可以把他们合并在一起,类似于
$result=mysql_query("SELECT* FROM table WHERE name like (name1, name2, name3, name4... ...) );(当然这个代码肯定是错的,只是打个比方)

解决方案 »

  1.   

    取决于你的具体语句看看rlike能否用
      

  2.   

    不能使用rlike,rlike相当于like '%name%',而我要的是like 'name'。我已经找到结果了,下面的代码可以实现我要的效果。
    $result=mysql_query("SELECT* FROM table WHERE name IN ('name1', 'name2', 'name3', 'name4')" );我还想到另外一个思路,是否先把所有要查询的name赋予一个函数,然后用implode爆破?
    但是输出代码报错 :Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource大家来讨论一下,如何修改,使下列代码也成立?<?
    $whereLike = array( 'name1', 'name2', 'name3', 'name4' );
    $sql = 'SELECT * FROM table WHERE name like ';
    $sql = implode( ' OR name like ', $whereLike );
    $result = mysql_query( $sql );
    while($row =mysql_fetch_array($result))
    {
     echo $row['name'];
    }
    ?>
      

  3.   

    rlike是可以用正则的比如你那个 rlike 'name[1-4]'
      

  4.   

    $sql = implode( ' OR name like ', $whereLike ); 这个是没加引号 大概如下
    $sql = '"'.implode( '" OR name like "', $whereLike ).'"';
      

  5.   

    非常感谢helloyou0,分先给你了。
    但是 $sql = implode( ' OR name like ', $whereLike ); 加了引号还是提示错误……