Bu daha boş datetime alanları seçmek için daha iyi bir yolu var mı?
SELECT * FROM `table` WHERE `datetime_field` = '0000-00-00 00:00:00'
Ne şekilde daha iyi? Bu sorgu bunu sormak her şeyi yapar ve bunu almak için gidiyor gibi datetime_field
, o kadar hızlı bir dizin var sağladı.
Eğer sorgu "çirkin" seyir konusunda endişeli iseniz, olmayın. Onun amacı oldukça açıktır.
Eğer düşünebiliriz tek olası gelişme sorgu hale geldiği durumda bu zero-date/time satırlar, NULL'ları kullanmaktır:
SELECT * FROM `table` WHERE `datetime_field` IS NULL
Ben standartlara uyumlu bir DBMS ile yapardım. Benim anlayış MySQL may I IS NULL
çalışmayabilir sanırım bu durumda, bu korkunç bir şekilde gerçek NULL datetime alanlarını temsil olmasıdır.
/ Tarih datetime sütun NOT NULL sunulmuştur sadece kullanabilirsiniz:
SELECT * FROM `table` WHERE `datetime_field` IS NULL
MySQL sizin için '0000-00-00 00:00:00 'eşit sütunları seçecektir.
Note: If you do:
SELECT datetime_field
IS NULL
MySQL 0 (false) döner ama WHERE yan tümcesi bir parçası olarak kullanıldığında bu deyimi hala doğrudur.
NOT NULL olarak ilan edilir TARIHI ve DATETIME sütunlar için, böyle bir deyimi kullanarak özel tarih '0000-00-00 'bulabilirsiniz:
Date_column IS NULL tbl_name SELECT * FROM
Bu ODBC '0000-00-00 'tarihi değeri desteklemiyor çünkü bazı ODBC uygulamaları işe almak için gereklidir.
http://dev.mysql.com/doc/refman/5.5/en/comparison-operators.html#operator_is-null