【发布时间】:2012-05-09 16:31:14
【问题描述】:
我想知道在处理 WHERE 子句中的多个条件和 NULL 值时,哪个是更好的性能或最佳实践。
WHERE
u.id = COALESCE(user_id, u.id) AND
su.custom_id = COALESCE(student_number, su.custom_id)
或
WHERE
CASE
WHEN user_id IS NOT NULL AND LENGTH(user_id) > 0
THEN
u.id = user_id
ELSE
su.custom_id = student_number
END
【问题讨论】:
-
你测试它的结果是什么?查询计划有何不同?
-
我是一名 SQL Server 人员,因此我对 MySQL 的设置方式或类型的 Profiler 的了解有限。
-
尝试将 EXPLAIN EXTENDED 放在 Select 语句之前。如果您习惯于查看 SQL Server 查询计划,它看起来不会有太大不同
标签: mysql sql performance null case