SQL查询中的数组?

我在使用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);

以上是 SQL查询中的数组? 的全部内容, 来源链接: utcz.com/qa/412579.html

回到顶部