Mysql veri tabanına birden fazla veriyi insert, delete, update yapmamız gerekebilir. Bu yazımda sizlere bunu mysql ile nasıl yapacağımızı anlatmaya çalışacağım.
İlk olarak mysql tablomuzu oluşturalım.
CREATE TABLE `yazilar` ( `yazi_id` int(20) UNSIGNED NOT NULL AUTO_INCREMENT , `yazi` text NOT NULL , `baslik` text NOT NULL , `yazi_durumu` varchar(20) NOT NULL , PRIMARY KEY (`yazi_id`) );
Tablomuzda id(primary key), yazi, baslik, ve durum sütunları bulunmaktadır. Örneklerimizi bu tabloya göre yapacağız .
Çoklu INSERT
Tablomuza 4 satır ekleyelim . Her satır için tek tek sorgu yapmak yerine tek seferde tablomuza ekleyeceğiz.
INSERT INTO tablo_adi (id, yazi, baslik, durum) VALUES ( 1, 'Yazi 1', 'Başlık 1', 'yayinda'), ( 2, 'Yazi 2', 'Başlık 2', 'yayinda'), ( 3, 'Yazi 3', 'Başlık 3', 'yayinda'), ( 4, 'Yazi 4', 'Başlık 4', 'yayinda');
Sütun isimlerini yazmadan insert işlemeni şu şekilde de yapabilirsiniz .
INSERT INTO tablo_adi VALUES ( 1, 'Yazi 1', 'Başlık 1', 'yayinda'), ( 2, 'Yazi 2', 'Başlık 2', 'yayinda'), ( 3, 'Yazi 3', 'Başlık 3', 'yayinda'), ( 4, 'Yazi 4', 'Başlık 4', 'yayinda');
Çoklu UPDATE
Şimdi bu eklediğimiz 4 satırı güncelleyelim. Bu 4 satırdaki 'durum' sütunundaki değerleri 'taslak' olarak değiştirelim. Sql kodumuz şu şekilde olacak .
UPDATE tablo_adi SET durum= 'taslak' WHERE id IN (1,2,3,4);
Bütün satırlardaki değerleri farklı olarak kaydetmek isterseniz sql kodumuz ;
UPDATE tablo_adi SET yazi = CASE WHEN id = 1 THEN 'yazi 1 update' WHEN id = 2 THEN 'yazi 1 update' END, baslik = CASE WHEN id = 1 THEN 'Baslik 1 update' WHEN id = 2 THEN 'Baslik 1 update' END WHERE id IN (1,2);
Aslında buradaki WHERE id (1,2) yazmadığımızda da update işlemini daha yavaş yapıyor .
WHERE id (1,2) kullandığımızda sorgu süresi :
Affected rows: 2
Time: 0.001ms
WHERE id (1,2) kullanmadığımızda sorgu süresi :
Affected rows: 2
Time: 0.003ms
Çoklu DELETE
Şimdi de eklediğimiz bu 4 satırı silelim :
DELETE FROM tablo_adi WHERE id IN (1,2,3,4);
Faydalı olması dileğiyle herkese iyi çalışmalar :) .
Çok faydalı oldu özellikler çoklu update işlemi işime yarayacak.
teşekkürler
Teşekkür ederim güzel paylaşım olmuş
Teşekkürler,
Özellikle
için.
Ben teşekkür ederim. İyi çalışmalar.
verdiğin bilgiler için tşk.ederim sormak istediğim şu id'ye göre silme işlemi yaparken silinen id'deki misan name alanındaki veriyi nasıl yazdırabilirim, bununla ilgili yardımcı olursan çok memnun olurum.
teşekkürler.
Merhaba,
Silmeden önce datayı sorgu ile çekmen lazım daha sonra silme işlemini yapmalısın.
Merhaba,
multi update işleminde şöyle bir sorunum var;
dergiler tablosundan satır satır çektiğim verileri input içine atıyorum ve toplu güncelleme yap dediğimde en son veriyi güncelliyor diğerlerine dokunmuyor.dergilerin fiyatlarını toplu nasıl güncellerim
WHERE IN deki dergi id lerinin tamamını verdiğinden emin ol. Bir de her derginin ilgili alanını aynı değer ile günceller. Eğer her dergi için farklı değerlerde güncelleme yapacaksan her biri için ayrı sql de update etmelisin.
Ek bilgi olarak;
UPDATE tablo_adi
SET durum= ‘taslak’
WHERE id IN (1,2,3,4);
Bu örnekte, misal olarak 1000 kayıt olan bir veritabanında id’leri tek tek yazmak gibi problem doğacak diyenler için,
UPDATE tablo_adi
SET durum= ‘taslak’
WHERE id between 1 and 1000
çözüm olacaktır..
Çok teşekkürler faydalı bir yazı olmuş.
gerçekten çok faydalı bir yazı olmuş çok işime yaradı Allah razı olsun
Çok güzel bir yazı bunu arıyordum bende teşekkür ederim.