[MYSQL] ø bei Suche nach o finden

MarkusH

Aktives Mitglied
Hallo,

gibt es irgendwie einen Zeichensatz oder sowas, der es mir erlaubt, bei einer Suche beispielsweise nach ø ebenfalls ein o zu finden? Unter utf-8 klappts ja problemlos mit o ein ö zu finden oder mit e ein é.

Gruße und danke
Markus
 
Mit UTF-8 hat das eher wenig zu tun (nutze zwar kein mySql, aber das ist auf einer anderen Ebene).

Das ist die Frage, wie mit Groß/Kleinschreibung und Akzenten umgegangen werden soll:

Da gibts diverse Kombinationen (Daten vom MS-SqlServer, ist aber relativ standardisiert) - alleine für Latin1_General:

QUOTE Latin1_General_BIN Latin1-General, binary sort
Latin1_General_BIN2 Latin1-General, binary code point comparison sort
Latin1_General_CI_AI Latin1-General, case-insensitive, accent-insensitive, kanatype-insensitive, width-insensitive
Latin1_General_CI_AI_WS Latin1-General, case-insensitive, accent-insensitive, kanatype-insensitive, width-sensitive
Latin1_General_CI_AI_KS Latin1-General, case-insensitive, accent-insensitive, kanatype-sensitive, width-insensitive
Latin1_General_CI_AI_KS_WS Latin1-General, case-insensitive, accent-insensitive, kanatype-sensitive, width-sensitive
Latin1_General_CI_AS Latin1-General, case-insensitive, accent-sensitive, kanatype-insensitive, width-insensitive
Latin1_General_CI_AS_WS Latin1-General, case-insensitive, accent-sensitive, kanatype-insensitive, width-sensitive
Latin1_General_CI_AS_KS Latin1-General, case-insensitive, accent-sensitive, kanatype-sensitive, width-insensitive
Latin1_General_CI_AS_KS_WS Latin1-General, case-insensitive, accent-sensitive, kanatype-sensitive, width-sensitive
Latin1_General_CS_AI Latin1-General, case-sensitive, accent-insensitive, kanatype-insensitive, width-insensitive
Latin1_General_CS_AI_WS Latin1-General, case-sensitive, accent-insensitive, kanatype-insensitive, width-sensitive
Latin1_General_CS_AI_KS Latin1-General, case-sensitive, accent-insensitive, kanatype-sensitive, width-insensitive
Latin1_General_CS_AI_KS_WS Latin1-General, case-sensitive, accent-insensitive, kanatype-sensitive, width-sensitive
Latin1_General_CS_AS Latin1-General, case-sensitive, accent-sensitive, kanatype-insensitive, width-insensitive
Latin1_General_CS_AS_WS Latin1-General, case-sensitive, accent-sensitive, kanatype-insensitive, width-sensitive
Latin1_General_CS_AS_KS Latin1-General, case-sensitive, accent-sensitive, kanatype-sensitive, width-insensitive
Latin1_General_CS_AS_KS_WS Latin1-General, case-sensitive, accent-sensitive, kanatype-sensitive, width-sensitive



Welche funktioniert, sieht man hier:


QUOTE Select 'Latin1_General_CI_AI',
Case When N'ø' = N'o' Collate Latin1_General_CI_AI Then 1 Else 0 End
Union All
Select 'Latin1_General_CI_AS',
Case When N'ø' = N'o' Collate Latin1_General_CI_AS Then 1 Else 0 End
Union All
Select 'Latin1_General_CI_BIN',
Case When N'ø' = N'o' Collate Latin1_General_BIN Then 1 Else 0 End


liefert:


QUOTE Latin1_General_CI_AI 1
Latin1_General_CI_AS 0
Latin1_General_CI_BIN 0


AI - accent-insensitive - ist das Stichwort. ø und o unterscheiden sich nur im Akzent. Nimmt man eine Sortierung, die Accents ignoriert, dann funktioniert das.
 
Zurück
Oben