Oznámení
Omlouváme se, provoz fóra byl ukončen
vyhledávání přesného textu v DB
Upozornění: Tohle vlákno je hodně staré.
před 8 lety
- p.batko
- Člen | 2
Ahoj,
ve databázi mám uložený nějaký text:
Například
ID1 – testovací zařízení
ID2 – míchač těsta
ID3 – test z matematiky
když dám vyhledat pomocí operátoru LIKE test, dostanu všechny tři výsledky řádky.
Chtěl bych, aby mě to vrátilo pouze ID 3 protože obsahuje přesně slovo které požaduji.
Díky za radu.
před 8 lety
- paranoiq
- Člen | 388
pokud jde o MySQL, můžeš použít operátor RLIKE (REGEXP):
SELECT 'těsto' LIKE 'test%'; -- 1
SELECT 'testovací' LIKE 'test%'; -- 1
SELECT 'test ' LIKE 'test%'; -- 1
SELECT 'TEST ' LIKE 'test%'; -- 1
SELECT 'těsto' RLIKE '[[:<:]]test[[:>:]]'; -- 0
SELECT 'testovací' RLIKE '[[:<:]]test[[:>:]]'; -- 0
SELECT 'test ' RLIKE '[[:<:]]test[[:>:]]'; -- 1
SELECT 'TEST ' RLIKE '[[:<:]]test[[:>:]]'; -- 1
[[:<:]]
je značka pro začátek slova,
[[:>:]]
je konec slova
víc tady: http://dev.mysql.com/…/regexp.html#…
před 8 lety
- mr.mac
- Člen | 87
A nebo jednoduše vlož za test mezeru:
SELECT pole LIKE '%test %'
popř.
SELECT pole LIKE 'test %'
Editoval mr.mac (22. 11. 2011 18:02)
před 8 lety
- paranoiq
- Člen | 388
mr.mac napsal(a):
A nebo jednoduše vlož za test mezeru:
to by nefungovalo, pokud by hledané slovo bylo na konci řetězce