$a = "4,5,6,1,3";$sql = "select * from tbl where sort REGEXP '(^|,)".join("(,|$)' OR sort REGEXP '(^|,)",explode(",",$a))."(,|$)'";
to 稻草人: 这个句语执行起来有错误噢. to Cinderella: 这种方法似乎不太好, $a的值是不固定的, 有时还可能很长.
什么错误? 你有没有把tbl换成你的表名?
to 稻草人: $sql = "select * from tbl where sort REGEXP '(^|,)".join("(,|$)' OR sort REGEXP '(^|,)",explode(",",$a))."(,|$)'"; echo $sql; 输出的结果是: select * from tbl where sort REGEXP '(^|,)(,|$)'后面一半没了
稻草人的是可以用的~~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(,|$)'
这个句语执行起来有错误噢.
to Cinderella:
这种方法似乎不太好, $a的值是不固定的, 有时还可能很长.
你有没有把tbl换成你的表名?
$sql = "select * from tbl where sort REGEXP '(^|,)".join("(,|$)' OR sort REGEXP '(^|,)",explode(",",$a))."(,|$)'";
echo $sql;
输出的结果是:
select * from tbl where sort REGEXP '(^|,)(,|$)'后面一半没了
如果不定义,测试的结果就是你贴出来的。
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(,|$)'