Kako podesiti da selektira samo "ivan", ne i "ivanović"?


Ovaj upit mi vraća traženu riječ, ali isto tako i širje pojmove gdje se tražena riječ nalazi. Npr. tražim "ivan", vraća mi i "ivanović" i sl.

Kako podestiti upit da vraća samo "ivan"?

Hvala

Ovaj upit mi vraća traženu riječ, ali isto tako i širje pojmove gdje se tražena riječ nalazi. Npr. tražim “ivan”, vraća mi i “ivanović” i sl.

Kako podestiti upit da vraća samo “ivan”?

Hvala

ovaj dio mi je predobar :doki: 
moze link na tvoj sajt?

ovaj dio mi je predobar :doki:
moze link na tvoj sajt?

Neću se osvrtat na ne escapeovane stringove, ako želiš punu riječ dodaš razmak prije i poslije. Nije neka mudrost…
Sljedeća stvar LIKE % se ne bi trebao koristiti, to je poprilično neoptimizirano i na malo večoj bazi bi sigurno bilo problematično…
googlaj malo FULL TEXT SEARCH…

full text moze samo ako je MyIsam ako nije onda mu ostaje like ili da se igra sa regularnim izrazima

Želiš reči nema ugrađeni FTS, a i da ima ja bi radije koristio sphinx ili neki drugi, koji će raditi i na innoDB.
Od developera mysql se sječam da je bilo baza koja koristi like % je loše dizajniranja od samog starta, like izbjegavati uvjek pogotovo ako imaš na početku %, ako je na kraju % još se index može i donekle iskoristiti, makar ni to nije baš najbolje (pričamo o MYSQL-u, dok druge baze više manje nemaju te opcije uopće)

npr. koje nemaju od ovih generalno sto znas? Postgres jos uvijek ima … ja recimo koristim levenshtein

Još jedna stvar po meni a to da koristenje LIKE nije bas da je manjak optimizacije pitanje je ipak o kakvoj se tablici radi sa kolikim brojem unosa, shure ako ima vise miliona onda like naravno nije bas najbolja opcija al sve ispod milion bi trebalo da guta sasvim solidno.

Ovisi najviše o količini podataka može biti i tisuću redova pa nek je to glomazni tekst, bijeda…
U prijašnjem postu sam govorio o korištenju indexa ako je upit tipa
WHERE polje LIKE Nesto% (obrati pažnju da je % NA KRAJU stringa, a da ga na početku opće nema), da onda MySQL koristi index, a za druge baze da najvjerojatnije ne koriste uopće index kod LIKE-a Svaka poznatija baza ima FTS (premda i nisu baš najbolji), ako i nema to se riješi kroz sphinx,lucene etc…

[quote=“paor”]<span class="syntaxdefault">$var&nbsp;</span><span class="syntaxkeyword">=&nbsp;@</span><span class="syntaxdefault">$_GET</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'q'</span><span class="syntaxkeyword">]&nbsp;;<br /></span><span class="syntaxdefault">$trimmed&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">trim</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$var</span><span class="syntaxkeyword">);<br /><br /></span><span class="syntaxdefault">$query&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxstring">"select&nbsp;*&nbsp;from&nbsp;arhivatabl&nbsp;where&nbsp;sadrzaj&nbsp;like\"%</span><span class="syntaxdefault">$trimmed</span><span class="syntaxstring">%\"&nbsp;ORDER&nbsp;BY&nbsp;datum&nbsp;ASC"&nbsp;</span><span class="syntaxkeyword">;&nbsp;</span><span class="syntaxdefault"></span>

Ovaj upit mi vraća traženu riječ, ali isto tako i širje pojmove gdje se tražena riječ nalazi. Npr. tražim “ivan”, vraća mi i “ivanović” i sl.

Kako podestiti upit da vraća samo “ivan”?

Hvala[/quote]

Pokušaj ovako nešto:

SELECT *
FROM arhivatabl
WHERE sadrzaj REGEXP ‘[[:<:]]$string[[:>:]]’ = 1
order by datum asc

Hvala svima

[quote=“antelaca”]<span class="syntaxdefault">$var&nbsp;</span><span class="syntaxkeyword">=&nbsp;@</span><span class="syntaxdefault">$_GET</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'q'</span><span class="syntaxkeyword">]&nbsp;;&nbsp;</span><span class="syntaxdefault"></span>
ovaj dio mi je predobar :doki:
moze link na tvoj sajt?[/quote]
znam da ovaj forum u naslovu ima “webmajstori”, ali ovaj paor poslije posla ne ide u birtiju, kurvanje ili gledati sapunice. njegovo opuštanje je comp pa prema tome bez straha:

http://www.gospodarstvo-petricevic.hr/online/onlinenov.php

jest MyIsam

[quote=“bbaja”]Pokušaj ovako nešto:

SELECT *
FROM arhivatabl
WHERE sadrzaj REGEXP ‘[[:<:]]$string[[:>:]]’ = 1
order by datum asc[/quote]

PHP Parse error: syntax error, unexpected ‘[’, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/…


Copyright © 2020 WM Forum - AboutContact - Sponsored by: Mydataknox & Webmaster.Ninja