MySQL'de iki tareih arasındaki saat farkı aşağıdaki gibi alınabilir :
time_to_sec(timediff(CURRENT_TIMESTAMP(), insert_date)) / 3600
Yukarıda örnekte şimdiki zamanla, insert_date arasında geçen zaman saat cinsinden alınır. Değer kusurlu gelebilir . Örneğin 24.0492 ise iki gün arasında 24 saatten fazla zaman geçmiş demektir
Bir tablo üzerinde aşağıdaki sorguyla test edebilirsiniz
select insert_date, time_to_sec(timediff(CURRENT_TIMESTAMP(), insert_date)) / 3600 from table_adi
Belirli bir gün önceki (00:00 dan 24:00 e kadar) olan kayıtlar aşağıdaki gibi alınabilir :
select * from table where
day(tarih_sutun)=day(DATE_ADD(CURRENT_TIMESTAMP,INTERVAL -1 DAY)) and month(tarih_sutun)=month(DATE_ADD(CURRENT_TIMESTAMP,INTERVAL -1 DAY)) and year(tarih_sutun)=year(DATE_ADD(CURRENT_TIMESTAMP,INTERVAL -1 DAY));
-1 yerine -3 yazarsanız bugünden üç gün öncek tümi günün kayıtlarına erişmiş olursunuz. Şimdiki zamanı belirli bir gün önceye alıp (veri istenen güne) kayıtın günü, ayı ve yılı eşit olan kayıtlara bakıldığında o günün kayıtları gelmiş olur
MySQL'de bazı yerlerde (örneğin select işleminde seçilecek değer için) koşul kullanılabilir. Koşul kullanımının genel yapısı aşağıdaki gibidir :
case
when
when
else
end case
Örneği select işleminde bir int sütunun değeri 0 dan büyük ise a , değil ise b verilmesi sağlanabilir
select case when sutun_adi>0 then 'a' else 'b' from tablo_adi
MySQL'de bir belirli sayıda rastgele kayır seçmek için aşağıdaki gibi bir sorgu kullanılabilir :
select * from tablo_adi order by RAND() limit 100;
Yukarıdaki sorgu tablodan rastgele 100 kayit seçmektedir. Her çalıştırıldığında farklı kayıtların geleceği görülebilir
MySQL'de float değerleri için = ifadesi ile karşılaştırma yaparsanız başarısız olmaktadır. Örneğin aşağıdaki gibi bir sorgu başarısız olmaktadır :
select * from uye where no=0.1
no sütunu float tipinde ise veritabanında 0.1 olmasına rağmen size sonuç dönmemektedir. Bunun yerine aşağıdaki gibi yapmanız gerekmektedir :
select * from uye where ABS(no - 0.1) < 0.0001
Görüldüğü gibi değerin 0.1 ile olan farkını alıp 0.0001 den küçük olmasına baktık. Bu şekilde yapıldığında veritabanında 0.1 olan kayıtlar gelmektedir