嗨,我的数据库中有两个表:用户和评级。我需要按评级对它们进行排序:
SELECT *
FROM users
LEFT JOIN ratings ON users.id = ratings.id
ORDER BY ratings.total_value / ratings.total_votes DESC
LIMIT 0 , 30
有时 total_value 值为空,我是否应该添加其他条件来检查这些值是否为空?
我认为COALESCE()
会在这里工作:
ORDER BY COALESCE(ratings.total_value, 0) / ratings.total_votes DESC
您可以使用COALESCE(ratings.total_value, 0)
返回第一个非空值。如果ratings.total_value
是NULL
,那么你会得到0
。
http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html#function_coalesce
我的简单测试select 1 / 0
给出了一个空值,所以我什至不知道你是否需要关心