Bir masam var ve bazı isimleri güncellemem gerekiyor ama merak ediyorum
aşağıdaki sorgular:
İkisi de aynı mı olacak?
Sorgu1
Update mytable
Set Name = Replace(Name,'Jeff','Joe')
Query2
Update mytable
Set Name = 'Joe'
where Name = 'Jeff'
Bir masam var ve bazı isimleri güncellemem gerekiyor ama merak ediyorum
aşağıdaki sorgular:
İkisi de aynı mı olacak?
Sorgu1
Update mytable
Set Name = Replace(Name,'Jeff','Joe')
Query2
Update mytable
Set Name = 'Joe'
where Name = 'Jeff'
Yanıtlar:
Hayır, aynı değil.
İlk sorgu tüm dizede dizeyi arar (bkz. Replace () " Belirtilen dize değerinin tüm örneklerini başka bir dize değeriyle değiştirir. "), İkincisi tam dizeyi arar.
JeffJoeİlk sorgu verir gibi kayıtlarınız varsa JoeJoe, ikinci sorgu verir JeffJoe(değişiklik yapmadan).
Hayır, aynı şeyi yapmayacaklar.
SQL motorunun gerektirdiği çaba tamamen farklıdır. İlk sorguda, motor her satırdan geçmeli ve Ad sütununda bir dize değiştirme işlemi gerçekleştirmelidir. İkinci sorguda, ismin "Jeff" olduğu tabloda arama yapıyor ve sadece Ad sütununu Joe olacak şekilde güncelliyor.
Dize değiştirme joker karakterdir. İlk sorguda, "Jeffrey" Adı "Joerey" olur.