DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   SQL baze podataka - Sponzor: Baze-Podataka.net (http://www.devprotalk.com/forumdisplay.php?f=10)
-   -   REGEXP kod pretrage MySQL baze i šžćč? (http://www.devprotalk.com/showthread.php?t=10122)

martinluter 08. 06. 2011. 11:18

Citat:

Originalno napisao webarto (Napišite 99591)
Kôd:

SELECT id FROM objekti WHERE opis LIKE '%apartmaji maja%'
SELECT id FROM objekti WHERE MATCH (opis) AGAINST ('+apartmaji +maja');

Kako si ti upisao taj LIKE? Ne bi trebao da vraća...

Postavi sve SQL upite...


www.slovenijaturizem.com/testing.php koriscen je REGEXP
www.slovenijaturizem.com/testing1.php koriscen je LIKE
www.slovenijaturizem.com/testing2.php koriscen je FULL TEXT

PHP kôd:

$br_rez=mysql_num_rows(mysql_query("SELECT * FROM objekti WHERE akt='Y' AND (naslov REGEXP '[[:<:]]apartmaji[[:>:]]' OR opis REGEXP '[[:<:]]apartmaji[[:>:]]' )  AND (naslov REGEXP '[[:<:]]maja[[:>:]]' OR opis REGEXP '[[:<:]]maja[[:>:]]' )"));

$br_rez=mysql_num_rows(mysql_query("SELECT * FROM objekti WHERE akt='Y'  AND (naslov LIKE '%apartmaji%' OR opis LIKE '%apartmaji%')  AND (naslov LIKE '%maja%' OR opis LIKE '%maja%')"));

$br_rez=mysql_num_rows(mysql_query("SELECT * FROM objekti WHERE MATCH(opis) AGAINST('+apartmaji +maja')")); 


webarto 08. 06. 2011. 15:09

Pa probaj ovako za naslov i opis, kako si ti postavio to je sasvim normalno što se dešava...
PHP kôd:

SELECT id FROM objekti WHERE opis LIKE '%apartmaji%maja%' 

"naslov" je VARCHAR a FULLTEXT radi samo na TEXT, je li... Ukombinuj FULLTEXT i LIKE i to će ti biti riješenje.

martinluter 08. 06. 2011. 16:51

Citat:

Originalno napisao webarto (Napišite 99594)
Pa probaj ovako za naslov i opis, kako si ti postavio to je sasvim normalno što se dešava...
PHP kôd:

SELECT id FROM objekti WHERE opis LIKE '%apartmaji%maja%' 

"naslov" je VARCHAR a FULLTEXT radi samo na TEXT, je li... Ukombinuj FULLTEXT i LIKE i to će ti biti riješenje.

Pa tako ti je to kad ne poznajem materiju u potpunosti, ucim iz primera i gresaka, jer mi je nepoznavanje egleskog velika muka, onda se postavljaju i ovakva pitanja.
HVala svima kojii su ucestvovali u temi!

dinke 08. 06. 2011. 17:40

^Imas Full Text Searches tutorijal na mom blogu na srpskom:

http://www.dinke.net/blog/2006/01/20...text-searches/

Generalno za ovo sto tebi treba potpuno je pogresno koristiti i like i regexp iz jednostavnog razloga jer nije moguce koristiti indexe, tako da ce sa malo vecim setom podataka biti veoma sporo.

martinluter 08. 06. 2011. 19:05

Citat:

Originalno napisao dinke (Napišite 99597)
^Imas Full Text Searches tutorijal na mom blogu na srpskom:

http://www.dinke.net/blog/2006/01/20...text-searches/

Generalno za ovo sto tebi treba potpuno je pogresno koristiti i like i regexp iz jednostavnog razloga jer nije moguce koristiti indexe, tako da ce sa malo vecim setom podataka biti veoma sporo.

Hvala puno Dinke za ovaj link!

Videcu da ubacim kod pretrage teksta FULL TETXT, a za Varchar da bude LIKE.

webarto 08. 06. 2011. 19:27

Uradi ovo jednom...

PHP kôd:

ALTER TABLE  `objektiADD FULLTEXT (`naslov`); 

I ovaj query probaj za pretrage...

PHP kôd:

SELECT id FROM objekti WHERE MATCH (opis,naslovAGAINST ('+apartmaji +maja'); 

Ja sam zaboravio da FULLTEXT može i na VARCHAR :)

Kada koristiš LIKE '%nesto%', onda je nije to to, a LIKE 'nesto%' može proći, ali opet nije to to što se tiče pretrage, znači FULLTEXT.

Edit:

Nisam siguran da ćeš moći ovako kako sam gore napisao. Pa probaj i ovako onda...

PHP kôd:

SELECT id FROM objekti WHERE MATCH (naslovAGAINST ('+paradoks +maja') AND MATCH (opisAGAINST ('+paradoks +maja'



Vreme je GMT +2. Trenutno vreme je 06:22.

Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.

Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.