MySQL: Suche in allen Spalten

supersalzi

Erfahrenes Mitglied
Hi,
Ich sag es gleich vorweg, ich habe leider nicht allzu viel Ahnung von DBs.

Ich habe eine Tabelle (s.u.) mit mehreren Spalten, in denen Titel und Ortsangaben zu Fotos gespeichert werden. Nun würde ich die Datenbank gern nach einem Schlüsselwort durchsuchen, weiss aber im Vorfeld nicht, in welcher Spalte es zu finden sein könnte.

Momentan sieht mein Querry sehr lang aus, ich habe alles mit OR zusammengehängt (es wird nach "london" gesucht:

Code:
SELECT * FROM `fotos` WHERE `date` LIKE '%london%' OR `title`LIKE '%london%' OR `country`LIKE '%london%' OR `region`LIKE '%london%' OR `place`LIKE '%london%' OR `cat`LIKE '%london%' OR `topic`LIKE '%london%' OR `by`LIKE '%london%'

gibt es eine geschicktere Variante dies zu vollbringen?

Tabelle:
Code:
CREATE TABLE `fotos` (
  `id` smallint(11) NOT NULL default '0',
  `date` varchar(25) collate latin1_general_ci NOT NULL default '0000-00-00',
  `title` text collate latin1_general_ci,
  `country` varchar(25) collate latin1_general_ci default 'Deutschland',
  `region` text collate latin1_general_ci,
  `place` text collate latin1_general_ci,
  `cat` text collate latin1_general_ci,
  `topic` text collate latin1_general_ci,
  `genre` text collate latin1_general_ci NOT NULL,
  `series` text collate latin1_general_ci NOT NULL,
  `select` varchar(25) collate latin1_general_ci NOT NULL default '',
  `color` varchar(5) collate latin1_general_ci NOT NULL default '',
  `by` varchar(25) collate latin1_general_ci NOT NULL default 'Salzi',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
Vielen Dank,
salzi
 
Zurück