Mailinglisten-Archive |
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