bugfix> mysql > 投稿

次の選択ステートメントがあるとします。

select starttime,id
          from childattendance
         where endtime is null
           and starttime is not null
           and date < date('2018-05-24')
           and companyid = 1414;

これに変更した場合、100%同じ結果が得られますか?

select starttime,id
          from childattendance
         where endtime is null
           and starttime >= ''
           and date < date('2018-05-24')
           and companyid = 1414;

フィールドにnull以外の値がある場合、それは常に空の文字列以上であるように思えますが、そうではありませんか?

そして、これが本当なら、どちらがより良いパフォーマンスを発揮しますか?

回答 1 件
  • mysqlではNULLは ""とは非常に異なるため、2つのステートメントが等しくなることはありません。フィールドがNULLの場合、そのフィールドに値が設定されていないことを意味します。一方、フィールドの値が ""の場合、そのフィールドには値として空の文字列があると言っているのと同じです。

あなたの答え