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