mysql在子句中避免循环

时间:2012-08-17 18:19:51

标签: php mysql

我必须检索用户的历史记录,并且我有4个表,其数据彼此依赖。我可以使用循环检索数据,但我改为使用“where IN()”子句并且我内爆输出先前的查询。但是,如果我提供给“where IN()”为空的列表,则返回错误。是否IN()不能为空?

2 个答案:

答案 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);