Hallo,
Ich bräuchte ja eine Variante, die 'on the fly' die Daten in der Tabellen Spalte umwandelt und die Kollation (für die Abfrage) ändert.
Also nochmal die ganz konkrete Frage: Wie kann ich nur für die jeweilige Abfrage den Zeichensatz und die Kollation meiner in der Tabelle vorhandenen Werte von utf-8 utf8_unicode_ci nach latin1 latin1_german2_ci ändern?
here we go:
1. Schritt: eine nette Tabelle mit einer UTF8-Spalte:
CREATE TABLE example  
    (name VARCHAR(50) CHARACTER SET 'utf8' COLLATE 'utf8_general_ci')  
2. Schritt: wir fügen unseren "Müller" in UTF-8 ein
INSERT INTO  
    example  
SET name = 'Müller'  
3. Schritt: wir suchen unseren Müller mit dem Suchtext "Mueller"
a) einfach so
SELECT  
    name  
FROM  
    example  
WHERE  
    name = 'Mueller'  
und bekommen erwartungsgemäß eine leere Ergebnismenge
name
---------
(0 Datensätze gefunden)
b) wir konvertieren unsere Spalte in latin1,
   weil latin1 die von uns benötigte Kollation latin1_german2 hat.
   (Groß- und Kleinschreibung wäre im Moment nicht benötigt):
SELECT  
    name  
FROM  
    example  
WHERE  
    [link:http://dev.mysql.com/doc/refman/5.0/en/cast-functions.html#function_convert@title=CONVERT](name USING latin1) COLLATE latin1_german2_ci = 'Mueller'  
und finden, wie von Dir gefordert, unseren Datensatz:
name
---------
Müller
(1 Datensatz gefunden)
Ich verstehe vermutlich Dein Problem nicht.
Freundliche Grüße
Vinzenz
 nicht angemeldet
 nicht angemeldet