Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [mysql] Like
Ziels
post 28.11.2006, 14:40:50
Post #1





Grupa: Zarejestrowani
Postów: 235
Pomógł: 2
Dołączył: 30.06.2006

Ostrzeżenie: (0%)
-----


Witam,

Chciałbym zadac bazie zapytanie typu
  1. SELECT * FROM baza WHERE tresc LIKE '(spacja lub nic)$wyrażenie(spacja lub nic)'


Co rozumiem przez spacja lub nic? Chcę szukać konkretnego wyrazu, jeśli jest w polu zapisany jako pierwszy to również powinno go znaleźć. Takie kombinowanie po to, żeby wyszukiwarka nie szukała mi po bbtagach... Wie ktoś jak to zrobić?
Go to the top of the page
+Quote Post
Sedziwoj
post 28.11.2006, 14:59:36
Post #2





Grupa: Zarejestrowani
Postów: 793
Pomógł: 32
Dołączył: 23.11.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Kurde jednak muszę SQL'a się poduczyć.
A tu można albo użyć _ jako pojedynczego symbolu (niezbyt pasuje, bo dowolny symbol), lub REGEXP (tak się to chyba nazywało) zamiast LIKE

Ten post edytował Sedziwoj 28.11.2006, 15:00:06


--------------------
Algorytmy w PHP, czy ktoś o tym słyszał?
Dlaczego tak mało kobiet programuje? ponieważ nie zajmują się głupotami.
Go to the top of the page
+Quote Post
siemakuba
post 28.11.2006, 15:20:30
Post #3





Grupa: Przyjaciele php.pl
Postów: 1 112
Pomógł: 20
Dołączył: 10.04.2005

Ostrzeżenie: (0%)
-----


Sprawdź tak:
  1. SELECT * FROM tabela WHERE tresc RLIKE " ?TWOJE_WYRAZENIE ?";

Przed każdym ze znaków zapytania stoi spacja.

pozdr.

Ten post edytował siemakuba 28.11.2006, 15:20:57
Go to the top of the page
+Quote Post
Ziels
post 28.11.2006, 15:50:40
Post #4





Grupa: Zarejestrowani
Postów: 235
Pomógł: 2
Dołączył: 30.06.2006

Ostrzeżenie: (0%)
-----


@up

To dopuszcza spacje, ale nie blokuje wszystkiego innego czyli chyba odpada
Go to the top of the page
+Quote Post
Sedziwoj
post 28.11.2006, 15:51:07
Post #5





Grupa: Zarejestrowani
Postów: 793
Pomógł: 32
Dołączył: 23.11.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Cytacik z manuala "RLIKE is a synonym for REGEXP"


--------------------
Algorytmy w PHP, czy ktoś o tym słyszał?
Dlaczego tak mało kobiet programuje? ponieważ nie zajmują się głupotami.
Go to the top of the page
+Quote Post
Ziels
post 28.11.2006, 15:57:35
Post #6





Grupa: Zarejestrowani
Postów: 235
Pomógł: 2
Dołączył: 30.06.2006

Ostrzeżenie: (0%)
-----


Cytat(Sedziwoj @ 28.11.2006, 15:51:07 ) *
Cytacik z manuala "RLIKE is a synonym for REGEXP"


Huh... No to muszę znaleźć jakiś tutek do Wyrażeń Regularnych mysqla tongue.gif

edit:

Wie może ktoś dlaczego to:
  1. SELECT * FROM tabela WHERE content RLIKE '[^a-zA-Z0-9](slowo)[^a-zA-Z0-9]'

Nie działa jeśli przed słowem nic się nie znajduje?

Ten post edytował Ziels 28.11.2006, 16:00:56
Go to the top of the page
+Quote Post
Sedziwoj
post 28.11.2006, 16:03:48
Post #7





Grupa: Zarejestrowani
Postów: 793
Pomógł: 32
Dołączył: 23.11.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


  1. SELECT * FROM baza WHERE tresc REGEXP "[[:<:]]$wyrażenie[[snitch.gif:]]"

Ale nie jestem pewien.


--------------------
Algorytmy w PHP, czy ktoś o tym słyszał?
Dlaczego tak mało kobiet programuje? ponieważ nie zajmują się głupotami.
Go to the top of the page
+Quote Post
Ziels
post 28.11.2006, 16:08:15
Post #8





Grupa: Zarejestrowani
Postów: 235
Pomógł: 2
Dołączył: 30.06.2006

Ostrzeżenie: (0%)
-----


Już mam -
  1. SELECT * FROM tabela WHERE content RLIKE '([^[:alnum:]]|^)wyrazenie([^[:alnum:]]|$)'


(ha! zaraz się dowiem że [:<:] to to samo co [:alnum:] tongue.gif)

Ten post edytował Ziels 28.11.2006, 16:08:52
Go to the top of the page
+Quote Post
Sedziwoj
post 28.11.2006, 16:13:40
Post #9





Grupa: Zarejestrowani
Postów: 793
Pomógł: 32
Dołączył: 23.11.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


  1. SELECT * FROM tabela WHERE content REGEXP '[^a-zA-Z0-9]?(slowo)[^a-zA-Z0-9]?'

Tak powinno działać.

Cytat
[[:<:]]
[[:>:]]
These match the null string at the beginning and end of a word respectively. A word is defined as a sequence of word characters which is neither preceded nor followed by word characters. A word character is an alnum character (as defined by ctype(3)) or an underscore (_).
mysql> SELECT "a word a" REGEXP "[[:<:]]word[[:>:]]"; -> 1
mysql> SELECT "a xword a" REGEXP "[[:<:]]word[[:>:]]"; -> 0


To wszystko z manuala do MySQL... tylko czasem nie kapuję co po angielsku piszą, w sumie to czasem po polsku mam kłopot.

Ten post edytował Sedziwoj 28.11.2006, 16:12:01


--------------------
Algorytmy w PHP, czy ktoś o tym słyszał?
Dlaczego tak mało kobiet programuje? ponieważ nie zajmują się głupotami.
Go to the top of the page
+Quote Post
Ziels
post 28.11.2006, 16:23:26
Post #10





Grupa: Zarejestrowani
Postów: 235
Pomógł: 2
Dołączył: 30.06.2006

Ostrzeżenie: (0%)
-----


Hmmm

Pozostaje jeszcze kłopot z takimzapisem w bazie: [ code] cośtam [ /code]

Jeśli wpisze code to wyszuka mi po tych znacznikach (w końcu "[" nie należy do klasy [a-zA-Z0-9]) jeslidopisze \[ to wywala błąd o niezakończonym nawiasie...

Ten post edytował Ziels 28.11.2006, 16:24:32
Go to the top of the page
+Quote Post
Sedziwoj
post 28.11.2006, 16:34:29
Post #11





Grupa: Zarejestrowani
Postów: 793
Pomógł: 32
Dołączył: 23.11.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


I znów kłania się manual biggrin.gif
Cytat
Note: Because MySQL uses the C escape syntax in strings (for example, `\n'), you must double any `\' that you use in your LIKE strings. For example, to search for `\n', specify it as `\\n'. To search for `\', specify it as `\\\\' (the backslashes are stripped once by the parser and another time when the pattern match is done, leaving a single backslash to be matched).


--------------------
Algorytmy w PHP, czy ktoś o tym słyszał?
Dlaczego tak mało kobiet programuje? ponieważ nie zajmują się głupotami.
Go to the top of the page
+Quote Post
Ziels
post 28.11.2006, 17:00:52
Post #12





Grupa: Zarejestrowani
Postów: 235
Pomógł: 2
Dołączył: 30.06.2006

Ostrzeżenie: (0%)
-----


  1. SELECT * FROM rzc_articles WHERE content
  2. RLIKE '([^[:alnum:]\\[/]|^)(the)([^[:alnum:]\\[]|$)'


Jest pełno sposobów na ominięcie tego ale jak ktoś nie będzie zaglądałw kod to sie nie domyśli tongue.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 11:51