"Niejednoznaczny" Select |
"Niejednoznaczny" Select |
14.05.2020, 11:21:35
Post
#1
|
|
Grupa: Zarejestrowani Postów: 143 Pomógł: 0 Dołączył: 9.04.2013 Ostrzeżenie: (0%) |
Witam i proszę o pomoc.
Tabela może zawierać string w następujących postaciach: 1. to jest postać 2. to, jest, postać 3. tojest, postać 4. to jest, postać 5. to jest nieważna postać Czy da się tak przekonstruować Select * From tabela where postac Like '%to jest postać%' żeby wynik zapytania dał wszystkie pierwsze 4 pola a pola 5 już nie? |
|
|
14.05.2020, 11:28:21
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 519 Pomógł: 6308 Dołączył: 27.12.2004 |
Czym sie rozni 5 od 1? Nie widze tu zadnej reguly ktora je odroznia i zakladam ze podane przez ciebie slowa to tylko przyklady
edit: dobra, chyba kumam poprostu usun spacje i przecinki po obu stronach porownania i zamiast LIKE uzyj poprostu = -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
14.05.2020, 11:38:01
Post
#3
|
|
Grupa: Zarejestrowani Postów: 143 Pomógł: 0 Dołączył: 9.04.2013 Ostrzeżenie: (0%) |
Czym sie rozni 5 od 1? Nie widze tu zadnej reguly ktora je odroznia i zakladam ze podane przez ciebie slowa to tylko przyklady edit: dobra, chyba kumam poprostu usun spacje i przecinki po obu stronach porownania i zamiast LIKE uzyj poprostu = 1 od 5 różni się tym, że w 5 występuje "nieważny" wewnątrz szukanego stringu. Tak, to tylko przykłady. Chodzi o to, żeby zadając do bazy zapytanie zawierające albo nie zawierające w stringu przecinki i/lub spacje, otrzymać wszystkie wyniki zawierające taki string z/bez przecinków/spacji w stringu Może jeszcze inny przykład: Zadaję do bazy Select * From tabela Where pole lie '%ToJestOla%' W wyniku dostaję: 1. To Jest Ola 2. To, jest, Ola bo takie dwa rekordy są w bazie Czyli, czy jest funkcja Mysql, która przy Select "pominie" spacje i przecinki zapisane w polach bazy? Ten post edytował maraska 14.05.2020, 11:48:21 |
|
|
14.05.2020, 11:46:15
Post
#4
|
|
Grupa: Moderatorzy Postów: 36 519 Pomógł: 6308 Dołączył: 27.12.2004 |
No ci przeciez napisalem. Usun te spacje i przecinki z obu stron porownania. No chyba to wiesz jak zrobic?
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
14.05.2020, 11:55:14
Post
#5
|
|
Grupa: Zarejestrowani Postów: 143 Pomógł: 0 Dołączył: 9.04.2013 Ostrzeżenie: (0%) |
No ci przeciez napisalem. Usun te spacje i przecinki z obu stron porownania. No chyba to wiesz jak zrobic? 1. Przecież jak dam "=" to dostanę tylko jeden rekord a nie 4 różniące się 2. Nie bez powodu są "%" bo szukany string ma być częścią stringu zapisanego w bazie |
|
|
14.05.2020, 11:56:49
Post
#6
|
|
Grupa: Moderatorzy Postów: 36 519 Pomógł: 6308 Dołączył: 27.12.2004 |
ad1) Jakbys usunal spacje i przecinki to by dzialalo.
ad2) Ja zalozylem ze to sa ciagi rowne a nie podciagi. To uzywaj tego LIKE tylko usun te spacje i przecinki po obu stronach jak juz ci 3 raz z rzedu pisze... -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
14.05.2020, 12:02:55
Post
#7
|
|
Grupa: Zarejestrowani Postów: 143 Pomógł: 0 Dołączył: 9.04.2013 Ostrzeżenie: (0%) |
ad1) Jakbys usunal spacje i przecinki to by dzialalo. ad2) Ja zalozylem ze to sa ciagi rowne a nie podciagi. To uzywaj tego LIKE tylko usun te spacje i przecinki po obu stronach jak juz ci 3 raz z rzedu pisze... No ale ja się ciągle dopytuję właśnie o to, jak ma wyglądać Select, żeby (jak piszesz) usuwał przecinki i spacje po stronie bazy |
|
|
14.05.2020, 12:03:29
Post
#8
|
|
Grupa: Moderatorzy Postów: 36 519 Pomógł: 6308 Dołączył: 27.12.2004 |
Mysql ma funkcje REPLACE. Uzyj jej
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
14.05.2020, 13:26:22
Post
#9
|
|
Grupa: Zarejestrowani Postów: 143 Pomógł: 0 Dołączył: 9.04.2013 Ostrzeżenie: (0%) |
|
|
|
14.05.2020, 13:48:51
Post
#10
|
|
Grupa: Moderatorzy Postów: 36 519 Pomógł: 6308 Dołączył: 27.12.2004 |
Ale czy ja ci kaze robic REPLACE w sekcji SELECT? Masz zrobic REPLACE w sekcji WHERE..... To ze oni przyklad daja w SELECT nei znaczy ze ty bezmyslnie masz tylko stekac...
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
14.05.2020, 14:08:55
Post
#11
|
|
Grupa: Zarejestrowani Postów: 143 Pomógł: 0 Dołączył: 9.04.2013 Ostrzeżenie: (0%) |
To może po prostu pokazałbyś takie zapytanie, gdzie szukam "AlaMaKota" żeby pokazał wszystkie poniższe rekordy:
1. Ala Ma Kota 2. Ala, Ma, Kota 3. AlaMaKota 4. Mała Ala Ma Kota Maćka Zakładamy że w bazie są właśnie tak zapisy |
|
|
14.05.2020, 14:11:00
Post
#12
|
|
Grupa: Moderatorzy Postów: 36 519 Pomógł: 6308 Dołączył: 27.12.2004 |
Ale po co? Przeciz ci napisalem: uzyj REPLACE w sekcji WHERE. Jaki masz z tym problem? Skoro wiesz jak uyzc REPLACE na kolumnie w SELECT, to czemu nie mozesz uzyc REPLACE na kolumnie w sekcji WHERE? Zasada jest dokladnie taka sama.
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
14.05.2020, 15:08:23
Post
#13
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
Ale wy kombinujecie.
Użyć Full Text Search i problem z głowy https://dev.mysql.com/doc/refman/5.6/en/fulltext-search.html |
|
|
14.05.2020, 15:27:11
Post
#14
|
|
Grupa: Moderatorzy Postów: 36 519 Pomógł: 6308 Dołączył: 27.12.2004 |
REPLACE to nie zadne kombinowanie. Regula wyszukiwania jest zdefiniowana i prosta. Mieszanie takiej kobyly jak FULL search na taka pierde to jest dopiero kombinowanie
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
14.05.2020, 15:44:27
Post
#15
|
|
Grupa: Zarejestrowani Postów: 143 Pomógł: 0 Dołączył: 9.04.2013 Ostrzeżenie: (0%) |
Ale po co? Przeciz ci napisalem: uzyj REPLACE w sekcji WHERE. Jaki masz z tym problem? Skoro wiesz jak uyzc REPLACE na kolumnie w SELECT, to czemu nie mozesz uzyc REPLACE na kolumnie w sekcji WHERE? Zasada jest dokladnie taka sama. Bo na moje wyobrażenie to co proponujesz wytnie tylko ewentualne spacje w sekcji Where i tyle. Ni jak nie pokaże tych rekordów, które wskazałem. Ale może nie kumam jak Replace działa bo nie używałem. Więc jak wiesz jak to zrobić z Replace, że te wszystkie rekordy wyświetli, to pokaż to zapytanie, proszę |
|
|
14.05.2020, 16:05:55
Post
#16
|
|
Grupa: Moderatorzy Postów: 36 519 Pomógł: 6308 Dołączył: 27.12.2004 |
To zamiast myslec co to zrobi, poprostu to zrob jak mowie i sie przekonasz czy mowie prawde czy klame ci w zywe oczy
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
15.05.2020, 09:48:03
Post
#17
|
|
Grupa: Zarejestrowani Postów: 143 Pomógł: 0 Dołączył: 9.04.2013 Ostrzeżenie: (0%) |
|
|
|
15.05.2020, 09:49:47
Post
#18
|
|
Grupa: Moderatorzy Postów: 36 519 Pomógł: 6308 Dołączył: 27.12.2004 |
Jak juz mowilem, replace ma byc po obu stronach porownania a nie obok
SELECT * FROM `baza` where replace(`tabela`, ' ', '') = 'AlaMaKota' -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
15.05.2020, 09:58:31
Post
#19
|
|
Grupa: Zarejestrowani Postów: 143 Pomógł: 0 Dołączył: 9.04.2013 Ostrzeżenie: (0%) |
Szacunek
|
|
|
Wersja Lo-Fi | Aktualny czas: 23.09.2024 - 13:43 |