我在使用 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 语句就会太大且太慢,对吧?
Thanks
你可以使用mysql的IN 函数 http://dev.mysql.com/doc/refman/5.5/en/comparison-operators.html#function_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);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)