phpbar.de logo

Mailinglisten-Archive

Re: Suchen in mehreren gleichen Tables
Archiv Mailingliste mysql-de

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Suchen in mehreren gleichen Tables



hallo Manuel

Manuel Koller wrote:
> Ich muss in mehreren gleichen Tables der gleichen Datenbank eine
> Volltextsuche durchführen.
> Ist es möglich alle mit einem einzigen select-Befehl zu durchsuchen?
> Ich habe es mal mit
> my $ra_resultate = $dbh->selectall_arrayref('select * from Table1, 
> Table2 where (subject like '%rot%' or text like '%rot%') and (subject 
> not like '%grün%' and text not like '%grün%')');
> probiert, doch dies ergibt den Fehler: "Column: 'subject' in where 
> clause is ambiguous".

Nee, das geht leider nicht.
Es muss stattdessen heissen:

select * from Table1 as t1, Table2 as t2
 where (t1.subject like '%rot%' or t1.text like '%rot%')
   and (t1.subject not like '%grün%' and t1.text not like '%grün%')
    or (t2.subject like '%rot%' or t2.text like '%rot%')
   and (t2.subject not like '%grün%' and t2.text not like '%grün%');

achte übrigens auf die '... ich nehm an, dass du im script da etwas
andere notation verwendest... ansonsten müsstest du die ' slashen (\') 

achte auch darauf, dass je nach tabellen-grösse da die
speicherauslastung etwas hoch ausfallen kann. die tabellen werden
germergt und da kein zusammenhang besteht, ergibt das ne table der
grösse SizeOfTable1 ^ SizeOfTable2 und je nach dem wieviele tabellen du
da hast, kann sich das dann ziemlich schnell in ziemlich hohe regionen
ausweiten.

wie wär's also mit einem vorbereiteten sql-query, welches die tabelle
als parameter erlaubt?
select * from ? where (subject like '%rot%' or text like '%rot%') and
(subject not like '%grün%' and text not like '%grün%');

grüessli, johannes

---
*** Weitere Infos zur Mailingliste und MySQL unter http://www.4t2.com/mysql 


Home | Main Index | Thread Index

php::bar PHP Wiki   -   Listenarchive