MySQL 性能 - 单个值的“IN”子句与等于 (=)
2022-08-30 11:36:04
这是一个非常简单的问题,我假设答案是“没关系”,但我无论如何都要问......
我有一个用PHP构建的通用sql语句:
$sql = 'SELECT * FROM `users` WHERE `id` IN(' . implode(', ', $object_ids) . ')';
假设事先进行有效性检查(是一个至少包含1个项目和所有数值的数组),我是否应该执行以下操作?$object_ids
if(count($object_ids) == 1) {
$sql = 'SELECT * FROM `users` WHERE `id` = ' . array_shift($object_ids);
} else {
$sql = 'SELECT * FROM `users` WHERE `id` IN(' . implode(', ', $object_ids) . ')';
}
或者检查的开销不值得在实际的sql语句中保存的内容(如果有的话)?count($object_ids)