# Ganze MySQL-DB nach String durchsuchen



## deinertsche (6. September 2005)

Hi!
Ich habe eine Datenbank mit mehreren Tabellen. Jede Tabelle hat ca. 100 verschiedene Spalten.

Wenn ich jetzt einen String in der gesamten Datenbank suchen will, muss ich dann 
SELECT * FROM table1, table2, table3, table4, table5 where column1 LIKE '%$searchstring%' OR column2 LIKE '%$searchstring%' OR ...
für alle 100 Spalten machen oder gibts auch eine Art Gesamtsuche?

Am liebsten wärs mir so: SELECT * FROM [AlleTabellen] WHERE [IrgendeineSpalte] LIKE '%$searchstring%'

greetinx
Deinertsche

ps: ich hatte dieses Thema schonmal im PHP-Forum gepostet aber keine Antwort bekommen.


----------



## hpvw (6. September 2005)

Dann will ich noch mal antworten:
Es gibt kein Search-All-Kommando in SQL.
Deine Abfrage macht übrigends wenig Sinn, da Du das Kreuzprodukt aller Tabellen bildest.
Dabei wird jede Zeile der einen Tabelle mit jeder Zeile der nächsten Tabelle und jeder Zeile einer weiteren Tabelle usw. verknüpft. Wenn Du nun, mit oder verbunden, nach einem Wert in jeder Spalte jeder Tabelle suchst, wirst Du alle Zeilen erhalten. Deine Ergebnistabelle hat dann "_Summe der Spaltenzahl aller Tabellen_" Spalten und "_Produkt der Zeilenzahl aller Tabellen Zeilen_".

Gruß hpvw

PS: Hier der Link zum Thread im PHP-Forum.


----------

