我在使用WHERE子句中的数组进行SQL查询时遇到问题。
例如:
我的阵列:
$myarray[1] = "hi"; $myarray[2] = "there"; $myarray[3] = "everybody";
我的MySQL陈述:
SELECT * FROM myTable WHERE title='".$myarray[]."'
有什么办法可以实现?我自己这样解决了它:
for(...) { $where = $where." title='".$myarray[$count]."' OR "; } $where = substr($where , 0, -3); ..... SELECT * FROM myTable WHERE ".$where."
但是,如果我的数组中有成千上万个条目,那么SQL语句将太大且太慢,对吗?
谢谢
您可以使用mysql的IN函数
编辑:正如amosrevira所说,您需要对数组中的字符串进行转义。
$myarray[1] = "'hi'"; $myarray[2] = "'there'"; $myarray[3] = "'everybody'"; $newarray = implode(", ", $myarray); //makes format 'hi', 'there', 'everybody' SELECT * FROM myTable WHERE title IN ($newarray);