Umlauty w bazie danych

Mam bazę danych, w której znajdują się miasta z niemieckimi nazwami, tzn zawierają “umlauty”.
Chciałbym mieć możliwość znalezienia miasta “München” za pomocą: “München”, lub “Munchen”, lub “Muenchen”.
W jaki sposób najprościej skonstruować takie zapytanie do bazy danych MySQL?

SELECT * FROM ALA WHERE city LIKE “M%nchen”

No chyba że czegoś nie zrozumiałem.

Możesz sobie zrobić metodę która przeleci ci każde zapytanie tego typu w locie i podmieni umlauty i mozliwe inne konfiguracje kotre mogly by byc na ich miejscu na ?

Po pierwsze chodzi mi o zapytanie w rubym za pomocą ActiveRecord.
Po drugie zapytanie ma być ogólne, a nie pasować do jednego miasta.

Właśnie chodzi mi o szczegóły zbudowania takiej metody, o której piszesz.

No cudo nie ma, musisz stworzyc tablice ktora bedzie zawierac wszytskie mozliwe umlauty i ich mozliwe zastepniki %w(u, ue, ss) i tak dalej co tak cobie chcesz, no i pozniej sprawdzasz czy dane slowo ma jakas z tych sylab jak ma to zastepujesz na %

a czy to AR czy sql to zadna roznica

where(‘city LIKE ?’, zmienna) gdzie zmienna to podmienione slowo juz z % i tyle

Nic lepszego chyba nie wymyslisz

Bardziej wydajne będzie robienie transliteracji również przy zapisie do bazy. Wtedy można będzie trzymać w bazie kanoniczną postać nazwy (np. Munchen albo munchen) a w zapytaniu przekształcać do tej postaci. Wtedy zapytanie nie będzie zawierać dzikich znaków (wildchars) i będzie realizowane z wykorzystaniem indeksu (o ile jest założony). Oczywiście jeśli to ma dotyczyć tekstu (a nie kolum typu łańcuch znaków), to jedyne sensowne rozwiązanie to użycie Sphinxa (albo SOLRa).