Wszystko co dotyczy tworzenia stron WWW.

Rublik

Moderator
Posty: 2858
Rejestracja: 25 lut 2009, 16:11
Kontakt:
    Windows 8.1 Chrome

Post08 gru 2014, 18:41

Niby drobiazg, a jednak :D
Przypuśćmy, że nazwisko ma ileś tam liter. W bazie znajduje się 20 nazwisk i mam wyświetlić te, które zawierają w sobie litery K i A w wymienionej kolejności, czyli na przykład nie Malinowska, bo już druga litera to A zamiast K, a np. pasuje Kowalski, bo kolejność K i A jest prawidłowa.
Na razie zatrzymałem się na następującej kwerendzie:
select * from klienci
where nazwisko like '%k%' or nazwisko like '%a%'
ale nadal wypisuje panią Malinowską. Jak ja mam to poprawić?
Honorowy Członek Mafii C-QUAM
HP EliteBook 820

Awatar użytkownika

SzymekRak

Zasłużony użytkownik
Posty: 552
Rejestracja: 09 lip 2008, 10:55
Lokalizacja: gdzieś bardzo daleko
    Windows 8.1 Firefox

Post08 gru 2014, 20:39

Niby drobiazg, a jednak :D
Przypuśćmy, że nazwisko ma ileś tam liter. W bazie znajduje się 20 nazwisk i mam wyświetlić te, które zawierają w sobie litery K i A w wymienionej kolejności, czyli na przykład nie Malinowska, bo już druga litera to A zamiast K, a np. pasuje Kowalski, bo kolejność K i A jest prawidłowa.
Na razie zatrzymałem się na następującej kwerendzie:
select * from klienci
where nazwisko like '%k%' or nazwisko like '%a%'
ale nadal wypisuje panią Malinowską. Jak ja mam to poprawić?
Moim zdaniem to zapytanie wypisuje wszystko, co spełnia taki warunek: "jest cokolwiek, potem k, potem znowu cokolwiek" lub "jest cokolwiek, potem a, potem znowu cokolwiek". Może coś takiego:

Kod: Zaznacz cały

select * from klienci where nazwisko like '%k%a%' or nazwisko like 'K%a%'
nie wiem

Rublik

Moderator
Posty: 2858
Rejestracja: 25 lut 2009, 16:11
Kontakt:
    Windows 8.1 Chrome

Post08 gru 2014, 23:25

Nadal wypisuje takie nazwiska jak Malinowska czy Paprocka...
Honorowy Członek Mafii C-QUAM
HP EliteBook 820

Awatar użytkownika

winuser

Zasłużony użytkownik
Posty: 1112
Rejestracja: 29 sie 2013, 12:15
Lokalizacja: Będzin
Kontakt:
    Windows Phone Internet Explorer

Post09 gru 2014, 6:55

Tam się czasem znaku podłogi nie używało, żeby ustawić kolejność liter ? Coś mi świta, że tak.
Sprawdziłem i tak, musisz zastąpić znak % znakiem _ .

Kod: Zaznacz cały

select * from klienci where nazwisko like '_k%a%' or nazwisko like 'K_a%'
Pokazuje nazwiska z drugą literą k mające w sobie literę a lub mające pierwszą literę K i trzecią a. Inne robisz analogicznie ;) (znak _ zastępuje dowolny znak)
Laptop: Dell Latitude E7240 | Intel Core i5 4310U | Intel HD 4400 | 16GB RAM Kingston | Samsung SSD 1TB | macOS Mojave 10.14.6
PC: Dell Optiplex 3020 SFF | Intel Core i5 4570 @3,2GHz | Intel HD 4600| 8 GB RAM Kingston| GoodRAM IridiumPro 480GB | macOS Mojave 10.14.6 + Windows 10
Japko: Apple iPhone 8 | Apple A11 Bionic @2.74 GHz | Apple A11 GPU | 3GB RAM | 64GB PAMIĘCI | iOS 13.1
Sieć: Compal ConnectBox | UPC 300Mb/s
Storage: Seagate BlackArmor NAS 220 | 4TB HDD + 2TB HDD |
PlayStation 4 | CUH-1116A | 1TB |

Inne sprzęty:
Spoiler
Pokaż
Satelita:
Corab 90cm Black | 2x Inverto Twin Black Premium | Philips 43PFS5301 | Formuler F1 Twin (Hyperion 6.4) | nBox BSKA ADB-5800s E2 | Hot Bird 13E + Astra 19.2E | Cyfrowy Polsat i nc+
Apple iPhone 5s | Apple A7 @1.3 GHz | PowerVR G6430 | 1GB RAM | 32GB PAMIĘCI | iOS 12.4
Apple iPhone 5 | Apple A6 @1.3 GHz | PowerVR G6430 | 1GB RAM | 32GB PAMIĘCI | iOS 10.3
Nokia N9 | TI OMAP3630 @1,1GHz OC | PowerVR SGX-530 | 1GB RAM LPDDR | 16 GB PAMIĘCI | MeeGo 1.2 Harmattan
Lumia 520 | Qualcomm MSM8227 @ 1GHz | Qualcomm Adreno 305 | 512MB RAM | 8GB PAMIĘCI| WP 8.1 GDR2

lolasher

Zasłużony użytkownik
Posty: 2405
Rejestracja: 10 paź 2008, 18:28
Lokalizacja: Zadupie pod Siedlcami ;)
Kontakt:
    Macintosh Safari

Post09 gru 2014, 11:44

To mam rozumieć, że trzeba ręcznie sprawdzać każdą literę w ciągu? A nie dałoby się w zamienić tej podłogi na gwiazdkę?

Rublik

Moderator
Posty: 2858
Rejestracja: 25 lut 2009, 16:11
Kontakt:
    Windows 8.1 Chrome

Post09 gru 2014, 14:57

winuser, Twoja kwerenda zwraca 0 wyników :P
lolasher, chyba tak ma to działać, w przypadku napotkaniu jako pierwszej litery A ma tego nazwiska nie wypisywać, tak samo, jak znajdzie K, ale nie wyszuka A.
Honorowy Członek Mafii C-QUAM
HP EliteBook 820

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 0 gości