phpbar.de logo

Mailinglisten-Archive

[php] Suche 3in1

[php] Suche 3in1

Sebastian Mendel lists at sebastianmendel.de
Mit Feb 15 16:48:50 CET 2006


Norbert Pfeiffer wrote:
> Hi,
> 
>>> Also brauche ich alternative Vorschlaege ... :-)
>> was 'darfst' du denn verwenden? MySQL Version?
> MySQL/4.0.25-standard-log
> 
> Eigentlich koennte man ja den durchsuchbaren Content der
> jeweiligen Tabelle in eine andere Tabelle ueberfuehren:
> 
> CREATE TABLE grandsearch (
>  nr   int(11) NOT NULL auto_increment,
>  art  char(1) NOT NULL default '',
>  idx  int(11) NOT NULL default 0,
>  file varchar(11) NOT NULL default '',
>  content text,
>  FULLTEXT KEY (content),
>  PRIMARY KEY (nr)
> );
> 
> INSERT INTO grandsearch (art, idx, file, content)
> SELECT 'K', kID, minAbb,
>        CONCAT(vorname,' ',name,' ',biogra,' ',ausste)
>   FROM kuenstler WHERE FG = 'Y';
> 
> INSERT INTO grandsearch (art, idx, file, content)
> SELECT 'O', oID, minAbb, CONCAT(titel,' ',descr)
>   FROM objects WHERE FG = 'Y';
> 
> INSERT INTO grandsearch (art, idx, file, content)
> SELECT 'X', f.fID, f.titel, CONCAT(x.titel,' ',x.descr)
>      FROM texte AS x
> LEFT JOIN tex2fil AS m ON x.xID = m.xID
> LEFT JOIN files AS f ON f.fID = m.fID
> WHERE f.titel <> '*';

(SELECT 'K', kID, minAbb, CONCAT_WS(' ',vorname,name,biogra,ausste) ... 
WHERE ...)
UNION
(SELECT 'O', oID, minAbb, CONCAT_WS(' ',titel,descr) ... WHERE ...)
UNION
(SELECT 'X', f.fID, f.titel, CONCAT_WS(' ',x.titel,x.descr) ... WHERE ...)
LIMIT 10;



> Nun hat man eine ganz normale Suche in einer Tabelle.
> Fragt sich halt nur, wie oft man grandsearch aktualisiert,
> MySQL hat leider keine Trigger ... :-(

MySQL _4_ kennt ja leider _noch_ keine Trigger ...

mit 5 hättest du sowohl Trigger als auch VIEWS, beides könnte dir helfen ...


-- 
Sebastian Mendel

www.sebastianmendel.de
www.sf.net/projects/phpdatetime | www.sf.net/projects/phptimesheet

php::bar PHP Wiki   -   Listenarchive