嗨我有兩個表在我的分貝:用戶和評級。我需要通過評級對它們進行排序:除以零爲排序過程
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值爲空,我應該添加附加條件,以檢查是否這些值是零?
嗨我有兩個表在我的分貝:用戶和評級。我需要通過評級對它們進行排序:除以零爲排序過程
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
是的,但有些國家的ratings.total_votes爲空,除以零然後呢? – user1308474
做同樣的事情,但用1而不是0? –
我的select 1/0
簡單的測試,給出了一個空值,所以我甚至不知道,如果你需要關心
肯定。並且你還必須添加條件來檢查'total_votes'是否爲零 – bansi
請不要使用'SELECT *' – Kermit
至少校對你的帖子是否有明顯的錯別字。 FTFY – NDM