有一些(困難)MySQL查詢MySQL是NULL不工作
SELECT
*,
(
SELECT
MIN(tbl.id)
FROM
stat tbl
WHERE
tbl.id > stat.id
and tbl.user_id=stat.user_id
) next_session_id,
(
Select
(case
when next_session_id IS NULL then '9999-12-31 23:59:59' else sub.date
end)
from
stat sub
where
sub.id=next_session_id
) next_date
FROM
stat
WHERE
user_id=15973
and date >'2014-06-01'
問題在下面,最後一行是next_session_id
NULL
(在MySQL Workbench中查看),它必須返回日期時間'9999-12-31 23:59:59'
,但返回NULL
。檢查IS NULL
不工作,我認爲或不正確。爲什麼會發生? 結果的UPDATE 實施例設置
你能提供樣本表數據和你通過這個查詢得到的輸出嗎? –
As @Griddor說:如果'next_session_id IS NULL',那麼'SELECT'中用於計算next_date的'WHERE'子句將不爲真。您可以將其重寫爲'WHERE sub.id = next_session_id OR next_session_id IS NULL'。 – VMai
@VMai thx解釋。我在查詢中做了一些修改+你的解釋和一切正常。添加您的評論,如答案,我感激地選擇 – disable1992