ADD_MONTHS(tarih,n) : Istenilen tarihe n ay ekler.
Bir çok kişide görülen soru şu;
"group by ile fieldi grupluyorum ve order by ile tersten sona listeliyorum yanliz şu şekilde bir problem var listelerken gruplanan fielde bagli ilk kayidi aliyor. yani username e gore gruplarsak bu kullanici 2004 yilinda ilk yazisini girmis 2007 de son yazisini girmis ama 2004 dekini baz alarak listeliyor. nasil cozum uretebilirim."
bu soruya karşı herkes binbirturlu akrobatliklarla yardimci olmaya calismis. yok efendim while icinde kontrol, tekrardan sorgu, array a yazdir kontrol et. gereksiz.
bu gibi durumlarda max tam bizim işimize göre. seçilen fielde bağlı en yüksek yani maximum kayidi getirecektir.
örneğin:
tablo makale
-id--yazar--veri
kayitlar
-1--caesar--ehe
-2--caesar--hoho
-3--yns--hobele
-4--savvy-yeap
-5--hunter-ok
-6--caesar-slm
-7--yns--hello world
-8--hunter-hypertext
sorgumuz:
plaın textphp:
$sorgu=mysql_query("select max(id) as id, yazar, text,count(id) as sayi from makale group by yazar order by id desc");
olsun. while icinde bu donguden yazar ,text ve sayiyi cektigimiz zaman sonu su olacaktir.
hunter - hypertext (2)
yns - hello world (2)
caesar - slm (3)
savvy - yeap (1)
bu sekilde son yani maximum kayit degerlerine göre verilen fieldden listeleme yapmis olacağız
SELECT ENAME,SAL FROM EMP WHERE SAl BETWEEN 1 000 AND 2000;
Değeri 1000'e eşit ve 1000'den büyük ve 2000'e eşit ve 2000'den küçük olanları seçer.
* MySQL'de tüm kullanıcılar ve yetkileri, "mysql" isimli bir veritabanında tutulur.
* Bir kullanıcı iki parçadan oluşur : kullanici_ismi@bilgisayar_ismi (hostname). Bu ikiliyi MySQL tek bir kullanıcı olarak algılar. Yani ahmet@localhost ile ahmet@penguen aynı kullanıcılar değildir (localhost ve penguen aynı makinalar olsa dahi).
* Bir kullanıcının 4 yetki seviyesi vardır. Her yetki seviyesi için mysql isimli veritabanında birer tablo bulunur.
* Hiyerarşik olarak bu tablolar en genelden özele doğru tanımlama yapar.
* User tablosu : Bağlanan kullanıcının sunucuya bağlanma hakkı olup olmadığını kontrol eder. Eğer erişim hakkı varsa, kullanıcı tabloda kendisi için belirtilen yetkilere sahip olur.
* Db tablosu : Hangi kullanıcıların hangi veritabanlarına hangi bilgisayarlardan ulaşabileceğini belirler. Eğer kullanıcının ilgili veritabanına erişim hakkı varsa, tabloda kendisi için belirtilen yetkilere sahip olur.
* Tables_priv tablosu : Aynı db tablosu gibi çalışır, ancak veritabanları yerine içindeki tablolara erişimi düzenler.
* Columns_priv tablosu : Aynı db ve tables_priv tabloları gibi çalışır, ancak veritabanlarının içindeki tabloların içindeki kolonlara erişimi düzenler.
ROUND(kolonlsabit,n) : Verilen değeri virgülden sonra n basamağını dikkate
alarak yuvarlar. Eğer n değeri negatif girilirse virgülün soluna kalan n adet rakam yuvarlanır.
ROUND(45.923,1) --> 45,9
ROUND(45.923) --> 46
ROUND(45.923,1) --> 45,3
ROUND(42.323,-1) --> 40