0
我有2臺在php mysql中使用「CASE WHEN ... THEN」時錯誤查詢值爲空?
c_users(ID, name)
1 | peter
2 | micheal
c_user_meta(user_id, meta_key, meta_value)
1 | c_user_level | 0
1 | last_login | 2013-07-31 14:33:24
2 | c_user_level | 1
2 | last_login | 2013-07-30 14:33:24
和查詢得到用戶的最後一次登錄用c_user_level = 0
$sql = " SELECT u.* ,
max(CASE WHEN m.meta_key = 'c_user_level' THEN m.meta_value END) level,
max(CASE WHEN m.meta_key = 'last_login' THEN m.meta_value END) last_login
FROM c_users u
LEFT JOIN c_usermeta AS m ON m.user_id = u.ID
WHERE u.id >0
AND (CASE WHEN m.meta_key = 'c_user_level' THEN m.meta_value END) = 0
AND (CASE WHEN m.meta_key = 'last_login' THEN m.meta_value END) IS NOT NULL
GROUP BY u.id ORDER BY last_login DESC"
而且結果:
ID | name | level | last_login
1 | peter| NULL | 2013-07-31 14:33:24
錯誤爲什麼USER_ID = 1的水平爲NULL,如何解決它?