select id from table where sort like '%,4,%' or sort like '%,5,%' or sort like '%,6,%' or sort like '%,1,%' or sort like '%,3,%'

解决方案 »

  1.   

    $a = "4,5,6,1,3";$sql = "select * from tbl where sort REGEXP '(^|,)".join("(,|$)' OR sort REGEXP '(^|,)",explode(",",$a))."(,|$)'";
      

  2.   

    to 稻草人:
    这个句语执行起来有错误噢.
    to Cinderella:
    这种方法似乎不太好, $a的值是不固定的, 有时还可能很长.
      

  3.   

    什么错误?
    你有没有把tbl换成你的表名?
      

  4.   

    to 稻草人:
    $sql = "select * from tbl where sort REGEXP '(^|,)".join("(,|$)' OR sort REGEXP '(^|,)",explode(",",$a))."(,|$)'";
    echo $sql;
    输出的结果是:
    select * from tbl where sort REGEXP '(^|,)(,|$)'后面一半没了
      

  5.   

    稻草人的是可以用的~~to:startnow(Rush) 你用稻草人的语句时,肯定是没有定义$a的值,
    如果不定义,测试的结果就是你贴出来的。
    select * from tbl where sort REGEXP '(^|,)(,|$)'
    测试语句:
    $a="4,5,6,1,3";
    $sql = "select * from tbl where sort REGEXP '(^|,)".join("(,|$)' OR sort REGEXP '(^|,)",explode(",",$a))."(,|$)'";
    echo $sql;运行结果:
    select * from tbl where sort REGEXP '(^|,)4(,|$)' OR sort REGEXP '(^|,)5(,|$)' OR sort REGEXP '(^|,)6(,|$)' OR sort REGEXP '(^|,)1(,|$)' OR sort REGEXP '(^|,)3(,|$)'