0

このように where 句を使用して mysql クエリを実行できます

TIME_TO_SEC(TIMEDIFF('2012-08-22 06:25:12',lastEventTime)) >70

ここでチェックする必要があるのは、=null を入力しようとしたが表示されない null 値です。必要なもの ?

サンプル クエリは以下のとおりです。次の質問は、lastEvenTime 列にインデックスを付ける必要がありますか?

SELECT 
    tblTimeLog.timeLogID,
    TIME_TO_SEC(TIMEDIFF('2012-08-22 06:25:12',lastEventTime)) As timeDifference
FROM tblTimeLog
WHERE tblTimeLog.timeID = 2209
And (TIME_TO_SEC(TIMEDIFF('2012-08-22 06:25:12',lastEventTime)) IS NULL  
  OR TIME_TO_SEC(TIMEDIFF('2012-08-22 06:25:12',lastEventTime)) > 100)
4

1 に答える 1

2

これを置き換えることができます

And (TIME_TO_SEC(TIMEDIFF('2012-08-22 06:25:12',lastEventTime)) IS NULL  
  OR TIME_TO_SEC(TIMEDIFF('2012-08-22 06:25:12',lastEventTime)) > 100)

and (lastEventTime IS NULL  
OR TIME_TO_SEC(TIMEDIFF('2012-08-22 06:25:12',lastEventTime)) > 100)

またはcoalesce、適切に選択されたデフォルトで使用します (の場合NULL):

and TIME_TO_SEC(TIMEDIFF('2012-08-22 06:25:12',
    coalesce(lastEventTime, '1900-01-01')) > 100

合体ビットはWHERE句にのみ関連しますが。lastEventTime がの場合に得られるSELECT部分です。NULLNULL

于 2012-08-22T11:04:33.213 に答える