![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 27.05.2015 Ostrzeżenie: (0%) ![]() ![]() |
Witam. Proszę o pomoc. Potrzebuje instrukcje select która wyciągnie mi z bazy pola których tytuły są z przedziału:
Tytuły na litery od a do g, Tytuły na litery od g do p, Tytuły na litery od p do ż Proszę o podpowiedzi. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 240 Pomógł: 278 Dołączył: 11.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
-------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 27.05.2015 Ostrzeżenie: (0%) ![]() ![]() |
Niestety nic to nie daje. Problem jest w tym że nie wykrywa to polskich znaków.
Jeżeli będę miał tytuł na literę ż, ź czy ł to nie zostanie on pobrany z bazy. Proszę o następne popdpowiedzi Ten post edytował bboymietek 31.05.2015, 00:03:58 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
@Turson idź się przespać
![]() CO do polskich liter to dodaj sobie do tego regexp: ^[a-gąćę] i powinno zadziałać. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 27.05.2015 Ostrzeżenie: (0%) ![]() ![]() |
niestety jeżeli używam tego selecta to np przy zapytaniu : ^[s-zśżź]
to wyskakują mi też tytuły które np litere "ś" mają w środku a nie na początku. Co robić? |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
pokaż zapytanie
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 27.05.2015 Ostrzeżenie: (0%) ![]() ![]() |
$zapytanie= "SELECT * FROM filmy WHERE tytul REGEXP '^[$literaPierwsza-$literaDruga$polskie]' ";
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
A przetworzone ?
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 27.05.2015 Ostrzeżenie: (0%) ![]() ![]() |
$zapytanie= "SELECT * FROM filmy WHERE tytul REGEXP '^[p-zśżź]' ";
|
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
W takim masz złe kodowanie tabeli/kolumny
Zobacz jakie masz kodowanie. Ja stworzyłem na utf8_polish_ci i działa tak jak powinno. |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 27.05.2015 Ostrzeżenie: (0%) ![]() ![]() |
spróbuj dodac do bazy wpis na litery ś lub ł i jeżeli w tytule bedzie np łódź a zrobie selecta takiego:
SELECT * FROM filmy WHERE tytul REGEXP '^[p-zżź]' to otrzymam w wynikach tytul łódź którego nie powinno być bo mialy być tytuły które na początku mają litere z przedziału p-z i kodowanie zmienilem na polish ale to nie pomaga. proszę o następne podpowiedzi |
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Daj zrzut z BD struktura i przykładowe dane
|
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
1. Nie korzystaj z wyrażeń regularnych tutaj, chyba że chce Ci się wpisywać wszystkie litery z dziesiątek alfabetów świata.
2. Wszystko co musisz mieć to poprawnie ustawiony system porównywania znaków (np. na utf8_[unicode|general|polish]_ci) i proste zapytanie:
PS. IIRC MySQL od lat jest skopany i ma problem z poprawną obsługą litery "Ł". EDIT: http://stackoverflow.com/a/3506373/252591 Ten post edytował Crozin 16.06.2015, 12:46:52 |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 139 Pomógł: 24 Dołączył: 12.05.2013 Skąd: Hamburg Ostrzeżenie: (0%) ![]() ![]() |
PS. IIRC MySQL od lat jest skopany i ma problem z poprawną obsługą litery "Ł". To, o czym piszesz odnosi się tylko do utf8_general_ci. I nie jest to bug. To po prostu jest zgodne ze standardem (http://www.unicode.org/Public/UCA/4.0.0/allkeys-4.0.0.txt). Żeby Ł===L można użyć na przykład "utf8_unicode_520_ci" (bodajże od 5.6). |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.07.2025 - 22:24 |