Hallo nochmal,
Du hast url_words als utf8_bin vorliegen, möchtest es aber als utf8_general_ci haben. In dem Fall würde ich es zunächst mit einer Konvertierung dieser Spalte CONVERT(url_words USING versuchen. Das Handbuch erwähnt sogar diese Methode im Absatz, der mit "Normally, you cannot compare a BLOB value or other binary string in case-insensitive fashion ..." beginnt.
Damit habe ich schon etwas experimentiert, aber wohl etwas falsch gemacht. Es sollte aber so funktionieren.
Welcher konkrete Grund veranlasste dich, utf8_bin zu verwenden?
Ich habe mich offenbar mißverstänlich ausgedrückt.
Um das ganze etwas zu konkretisieren...
Ich habe eine Tabelle, die aus Worten/Phrasen, teils mit Sonderzeichen und Umlauten besteht. So eine Phrase entspricht, sobald sie urlencoded ist, einer gültigen Url. Die Konvertierung erfolgt direkt von multibyte in urlencoded.
Beispielsweise könnte die Url mit dem Wort 'In würde' auf eine andere Resource, als 'in Würde' oder 'in wurde' zeigen. Ein Unique Index liegt ua über diese Phrasenspalte. Es müssen beide Varianten möglich sein, bei utf8_(general|unicode)_ci funktioniert das ganze nicht, da U=u=Ü=ü usw siehe http://dev.mysql.com/doc/refman/5.1/de/charset-unicode-sets.html
Es wäre möglich, die Urls urlencoded in latin1 zu speichern, wäre mir aber zu aufwendig, da es dann nötig wäre einiges an Funktionen umzuschreiben und Konvertierungen vorzunehmen.
Vielleicht nehme ich aus dem betreffenden Modul die boolsche Suche auch ganz heraus.
Hoffe mich etwas verständlicher ausgedrückt zu haben.
herzliche Grüße nochmal,
Jonny 5