Autor Zpráva
Tomasekkkk
Profil *
Ahoj všem, měl bych jeden dotaz, mám nastavené v tabulce v mysql u políčka Nazev fulltext. Přes selectování v PHP potřebuji vyhledávat výsledky např. takto:

když zadám monitor LG, aby mi to listovalo od hora všechny monitory LG a ke konci ostatní zboží, které může odpovídat např. jen prvnímu nebo druhému slovu. Zatím mám select takto, ale nedělá to co bych chtěl:

SELECT Nazev FROM databazezbozi_cz.ZBOZI WHERE MATCH(Nazev) AGAINST ('monitor LG*' IN BOOLEAN MODE) LIMIT 8

Dokážete mi prosím někdo poradit, zda-li to mám správně či je problém v něčem jiném? Díky moc Tom
Kajman_
Profil *
Boolean mode nerozlišuje přesnost shody. Jen, zda je nebo není. Uložený fulltext index by šel setřídit, jen tam zase nebudou tak krátké názvy a nepůjde hvězdička.
Kajman_
Profil *
Třeba takto, ale rychlé to asi moc nebude. Jestli nebude lepší, když si naprogramujete vlastní fulltext.

SELECT Nazev,
  MATCH(Nazev) AGAINST ('monitor' IN BOOLEAN MODE)
  +
  MATCH(Nazev) AGAINST ('LG*' IN BOOLEAN MODE) AS slov
FROM databazezbozi_cz.ZBOZI
WHERE MATCH(Nazev) AGAINST ('monitor LG*' IN BOOLEAN MODE)
ORDER BY slov desc
LIMIT 8 
Tomasekkkk
Profil *
Kajman_

Díky za informaci, ale v tom políčku hledání může být více slov jako např. monitor DELL, nebo Flash 16GB apod. :-(
Kajman_
Profil *
A kde je problém? Slova jsou oddělena mezerou, tak si je rozsekejte např. díky split a pak přes foreach poskládejte výpočet slov.
Tomasekkkk
Profil *
Kajman_

Dobře, já v tom nejsem zase tak znalý, tak ¨to je pro mě trošku problém, ale díky za nasměrování, zkusím to nějak pořešit a naučit pořádně split apod. ;o)

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0