2008-10-08 5 views

cevap

7

Değil (En azından bugün değil ... MySQL bu sorunu görmezden ya da en iyi tahminle, tablolar 100'ler üzerinde alfabe değiştirme bakmıyor olması için bir seçenek gibi, bir kısayol arıyorum) emin mySQL hakkında ancak örneğin farklı harmanlama ile 2 tablolar var ve onlara katılmak isteyen ya da durumun sandık UNION gibi tabii

select column1 from tableWithProperCollation 
union all 
select column1 COLLATE SQL_Latin1_General_CP1_CI_AS from tableWithDifferentCollation 

yapabilirsiniz eğer öyleyse MSSQL sorgu harmanlamayı değiştirebilir SQL_Latin1_General_CP1_CI_AS, "dönüştürmeyi"

'a dönüştürmek istediğiniz bir harmanlama örneğidir
+0

işe yarayabilecek bir deyişle, ama benim sorgu bazıları daha da sütunlardan oluşan, seçilen yaklaşık 80 sütun bulunur: Ben MySQL bu komutu Rune. Tüm sorguyu düzenlemek biraz zaman alır. Yalnızca "harmanlama hataları yok" ayarı yok mu? :-) – Greg

+0

Maalesef bunu bilmiyorum, ama bundan şüphe duyardım. Daha sonra iki uyumsuz sütunun birleşimini nasıl seçersiniz (hiçbiri varsayılan harmanlama olmadığı varsayılarak)? – kristof

+0

Görünüşe göre, MySQL, en azından kullanıcı bunu yapacak bir ayar ayarlarsa, sendika sorgularından birinin diğerine eşleşmesi sonucunu zorlamalıdır. Seçme konsat ile benzer bir felsefe izler (1, 'a'); '1a' vermek. .. ama ben bir veritabanı dili tasarımcısı değilim. – Greg

4

Teşekkürler Kristof. Bu durumda, ilk seçimde bir tamsayının seçilmesiyle ve herhangi bir farklı tablo harmanlamasından kaynaklanmıyordu.

İronik olarak, bu sorun için yaptığım bu old blog post'u izleyerek çalıştım.

1

Kolay bir düzeltme gibi görünen bir düzeltme, size sorun yaratan tüm veritabanını değiştirmektir. Bunu yapmanın en iyi yolu olmayacağını düşünüyorum, ama benim için çalışıyor ve kolay.

ALTER DATABASE databasename COLLATE utf8_unicode_ci; 
İlgili konular