2011-03-14 14 views
5

Bir kerede çok sayıda kaydı nasıl değiştireceğiniz belli bir sütun türünün seçildiği bir kerede birkaç kaydın nasıl güncelleneceğini bilmek istiyorum.phpmyadmin

Kayıtların nasıl seçileceğini buldum. Kayıtları nasıl güncelleyeceğimi buldum. Ama bunun için birlikte nasıl yapılacağını bilmiyorum.

Seçme: users GELEN

SEÇ * NEREDE 'türü' = 'yeni'

Güncelleme:

güncelleme tablo
seti kolonu = Yani temelde i değiştirmek istiyorum 937

Başka bir sütun 'türü' 'yeni' ise 'sütun' '937' 'tablo' 'içindeki bilgi. Bir alt sorgu ile yapabilirsiniz

cevap

5

Siz sadece UPDATE açıklamaya bir WHERE maddesini ekleyerek bunu yapabilirsiniz:

Elbette
UPDATE `users` 
SET `myColumn` = 937 
WHERE `type` = 'new' 

, değişim Sütunum bir süre araştırma yaptıktan sonra sütun Adını

+0

güncelleştirmesi için hedef tablo 'kullanıcıları' belirtebilirsiniz, teşekkürler! – dirk

0

sayesinde:

update users 
set column = 937 
where id in (select id from users where type='new') 

Sadece onları yanlış var sütunları isim değiştirin.

+0

Hızlı yanıtınız için teşekkürler, ancak çalışmıyor. Aşağıdaki hatayı alıyorum: FROM yan tümcesi – dirk

0

maç için ben başka bir çözüm buldu bu sorun. Bir sorguda aynı tabloya veya alan adına başvuru yaparken, MySQL'deki isim alanı çift kopyalarla biter ve başarısız olur. Bunu aşmak için yinelenen öğeleri adlandırmak için "AS" sözdizimini kullanın. Ayrıca, güncelleştirme sorguları genellikle, nerede yan tümce için parametre olarak kullanılacak bir anahtar alan gerektirir, bu genellikle otomatik artırılmış kimlik alanınızdır. Bu örnek, bu sorunların her ikisi için bir çözüm sağlar.

UPDATE tbl 
    SET field=newValue 
    WHERE tbl.key IN 
     (SELECT idNew FROM 
      (Select tbl.key AS idNew 
      FROM tbl 
      WHERE field=editValue) AS tblNew); 
  • tbl - Masa adı güncellenmektedir

  • alan - Hedef alanında malzemelerini değiştirme Değer

  • tbl.key - güncelleme

  • newValue için hedef alan - tablonuzdaki anahtarın alan adı

  • idNew - İsminizi değiştirmek ve isminizdeki adların çoğaltılmasından kaynaklanan hataların önlenmesi için tablonuzdaki anahtarın yeni adı. herhangi bir alfasayısal dizge olabilir. 'Id' veya 'id_new' veya 'id_n'

  • editvalue -, sorgu için yeni isim sorguda yinelenen tablo adlarını önlemek için - değeri

  • tblNew değiştirmek için.herhangi bir alfasayısal dize 'tbl_n' veya 'tbl_new' ya Bu sorgu düzenlediğiniz istediğiniz değerleri içeren kayıtları eşleşen tüm kayıtları için anahtar değerleri alır

'tbl_test' Olabilir, o zaman anahtarın adlarını değiştirir ve böylece onlar MySQL tarafından işlenebilsin, son olarak güncelleme sorgusu çalışır ve alt sorguda verilen anahtarlara göre değerleri değiştirir.

Umarım bu birkaç saatini kurtarır!