我必须检索用户的历史记录,并且我有4个表,其数据彼此依赖。我可以使用循环检索数据,但我改为使用“where IN()”子句并且我内爆输出先前的查询。但是,如果我提供给“where IN()”为空的列表,则返回错误。是否IN()不能为空?
答案 0 :(得分:1)
您可以在开头添加空值,例如IN (0,your values here)
答案 1 :(得分: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:数组initiliser中的值,它不在数据库中(例如,如果我根据自动增量id选择,我使用零作为默认数组值来停止任何空数据集的问题,如零将永远不会出现在我的id栏中。)
$some_array = array(0);