我必须检索用户的历史记录,并且我有 4 个数据相互依赖的表。我可以使用循环检索数据,但我使用了“where IN ()”子句,并且将前一个查询的输出内爆.但是,如果我提供给“where IN()”的列表为空,则会返回错误。IN() 不能为空吗?
问问题
122 次
2 回答
1
您可以在开头添加一个空值,例如IN (0,your values here)
于 2012-08-17T18:21:39.867 回答
1
在为 IN 子句内爆数组时,我会做两件事之一
1:检查您是否甚至需要运行查询
if(!empty($some_array)) {
//run mysql query
}
else {
// if you need to do something if the array is empty, such as error or set some defaults, do it here
}
2:数组初始化程序中的一个值,它永远不会在数据库中(例如,如果我根据自动增量 id 进行选择,我使用零作为默认数组值来停止任何与空数据集有关的问题,因为零永远不会在我的 id 列中)。
$some_array = array(0);
于 2012-08-17T18:23:31.403 回答