我需要检查包含超过 400 个值的数组值,这些值存在于 MySQL 表中,我应该在其中获取我传递的所有值的结果,即使它不存在于列中。
例如:
cont table
----------
Column1
---------
9xxxxxxxxx
91xxxxxxxx
92xxxxxxxx
我的数组包含 9xxxxxxxxx
和 91xxxxxxxx
。我如何迭代才能确定该列是否存在。
我尝试使用 foreach
并构建查询
$sql = 'SELECT cont WHERE num IN(';
foreach($jsonString as $val){
$sql = $sql . "'$val', ";
echo $val;
}
if(mysqli_query($con,$sql)){
echo "exist";
}else {
echo "error";
}
有没有比上面更快的有效方法?
最佳答案
首先,如果 cont
是您的表名而不是 FROM
关键字。
如果 cont
是列名,那么 TABLE
名在哪里?
根据您的问题,您有 400 多个 ID,为什么要在这里使用循环?你可以简单地使用 implode()
和逗号分隔值,比如
<?php
$ids = implode(",",$jsonString);
$sql = "SELECT * FROM cont WHERE num IN ($ids)"; // assuming cont is table name
?>
在您的循环中,您将在末尾的最后一次迭代中获得“,”,这将中断您的查询。
关于php - 检查数组值是否存在于 mysql 表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40654955/