查询效率

时间:2010-11-18 11:12:38

标签: php sql mysql database

$_query = 'UPDATE ' . TABLE_A1 . ' SET active=0 WHERE user_id IN ( ';
                foreach ($newUsers as $newUser) {
                    $_query.=$newUser. ' ,';
                }
                $_query = rtrim($_query, ',');
                $_query .=')';

这是一次同时编辑多个表条目的高效方法吗?有更快的方法吗?

感谢

3 个答案:

答案 0 :(得分:1)

是的,这是非常高效的。我不知道有什么更快的方式。

答案 1 :(得分:1)

更新很好。 您可以使用implode而不是遍历该数组来使您的PHP更优雅。

即:

$_query = 'UPDATE ' . TABLE_A1 . ' SET active=0 WHERE user_id IN (' . implode(',', $newUsers) . ');'

答案 2 :(得分:1)

您可以在查询中添加另一个约束,这可能会加快速度,但这取决于您获得用户的方式......

如果您的某些用户已经“有效= 0”,您可以通过添加

将其排除在查询中

....其中有效的<> 0和user_id在(...

这将阻止对已具有正确值的字段进行更新。我在系统oncce上有类似的查询,它正在更新数百万条记录,其中包含正确的信息......