Piszę aplikację, która musi działać zarówno na mysql jak i postgresql. Muszę użyć like
, aby porównać niektóre wartości. W przypadku mysql LIKE
jest niewrażliwe na wielkość liter. W postgresql LIKE
jest rozróżniana wielkość liter i ILIKE
jest niewrażliwy na wielkość liter.Składnia SQL "LIKE"
Jaki jest najlepszy sposób na utworzenie solidnego zapytania, które działa na obu, w przypadku, gdy dopasowanie musi być niewrażliwe na wielkość liter?
Czy PDO ma na to rozwiązanie?
"P: Czy wszystkie skrypty mają duże i małe litery? O: Nie, w rzeczywistości większość skryptów nie ma przypadków". (Z najczęściej zadawanych pytań na temat Unicode) W ogólnym przypadku nie można liczyć na pisanie małymi literami wielkimi literami. Nie możesz również liczyć na małe litery, aby odwzorować jedną wielką literę - niektóre z nich są UPPER() na dwa znaki. Więc lower() jest bezpieczniejszy, ale tylko trochę. Czy nie kochasz życia w świecie Unicode? –
@Catcall: Dobry przykład pojedynczego odwzorowania małych liter na dwie wielkie litery pochodzi z egzotycznego języka niemieckiego: 'UPPER (" ß ")' to '" SS "'. I18N i L10N to taki szczęśliwy czas zabawy! Zwłaszcza, gdy masz do czynienia z JIS, SJIS, EUC i Unicode Japanese jednocześnie nie będąc w stanie czytać po japońsku (byłeś tam, robiłeś to, ciesząc się, że UTF-8 jest obecnie dość standardowym standardem). –