Genel

Mysql update ile statu değiştirme

merhaba arkadaşlar bugün sizlere kısaca tek sorgu ile Mysql update ile statu değiştirme kolayca nasıl değiştirebiliriz bunu örnek ile anlatmak isteyeceğim. Bunun neden ise php üzerinden basit bir şekilde if else kullanmak yerine mysql tek sorgu ile istediğimiz durum alanını değiştirebiliriz siz isterseniz bu sorguyu kendinize göre güncelleyebilir geliştirebilir yorumlarınızla paylaşabilirsiniz.

Örnek kodumuz

[code]<br data-mce-bogus="1">

UPDATE tablo, (SELECT CASE statu WHEN 1 THEN 0 WHEN 0 THEN 1 END as durum FROM tablo) say SET tablo.statu=say.durum

[/code]

 

kodu size yarayaracak şekilde kullanabilirsiniz. Bilmeyenler için case alan when değet then değer ne işe yarar kısaca anlatmak isterim;

SQL Serverda case fonksiyonu sorgu sonucu dönen bir kolonun degerine göre farkli islemler yapabilmemize olanak saglar. Istedigimiz bir kolonun degerini belirli sartlari kontrol ederek yeni bir degerle degistirmek için kullanabiliriz. Örnegin tablomuzdaki cinsiyet kolonundan ‘E’ geldiginde sorgu sonucunda Erkek ‘B’ geldiginde ise Bayan yazmasini istiyorsak case fonksiyonunu kullanmak en mantikli ve en kolay yoldur. Basit bir örnekle baslayacak olursak;

Kisi diye bir tablomuz olsun bu tablodan select Ad,Soyad,Cinsiyet  from Kisi sorgusu ile kayit çektigimizde asagidaki liste dönmekte.

AdSoyadCinsiyet
AliDemirE
HasanErtekinE
IlhanYücelE
LeylaEceB
MetinTosunE

Dikkat edilirse Cinsiyet için tek karakterlik bir sonuç  dönmekte, eger biz sorgu sonucunda cinsiyeti ‘E’ olan kayitlari Erkek, ‘B’ olan kayitlari da Bayan diye göstermek istersek asagidaki sorguyu yazmamiz gerekir.

1
2
3
SELECT  Ad,Soyad,
 case Cinsiyet when 'E' then 'Erkek' when 'B' then 'Bayan' end as Cinsiyet
FROM Kisi

Yukaridaki sorgu sonucu asagidaki liste döner. Listede de görüldügü gibi Cinsiyet kolonunu istedigimiz yapida degistirerek listeye ekledik.

AdSoyadCinsiyet
AliDemirErkek
HasanErtekinErkek
IlhanYücelErkek
LeylaEceBayan
MetinTosunErkek

Case fonksiyonu bir çok farklı durum için kullanılabilir. Örnegin Müşteri ve KonusmaKaydi diye iki tablomuz var. Her musterinin konumsa kayitlari konumsa kaydi tablosunda konusma yönüne göre tutuluyor. Her konumsa için konusma kaydi tablosuna yeni bir kayit giriliyor. Konusma yönü sehir içi, sehirlerarasi, GSM gibi degisiklik göstermekte.  Biz müsterinin konusma kayitlarini bulmak için bu iki tabloyu birbirine baglayarak istegimiz kayıtları alabiliriz.

daha detaylı bilgi almak isterseniz yazılım mutfağındaki yazıyı okuyabilirsiniz.

Bunu Oyla post

Leave a Comment

Your email address will not be published.

You may also like

%d blogcu bunu beğendi: