mySQL MATCH über mehrere Tabellen hinweg

8

Ich habe einen Satz von 4 Tabellen, über die ich suchen möchte. Jeder hat einen Volltextindex. Kann eine Abfrage jeden Index nutzen?

%Vor%

Hier ist meine Abfrage;

%Vor%
  • Kategorien.Name == FULLTEXT - 1
  • host_types.name == FULLTEXT - 2
  • hosts.name == FULLTEXT - 3
  • products.name, products.keywords, products.description, products.uid == FULLTEXT - 4

Hier ist meine SQL-Struktur, und ich habe die obige Abfrage verwendet.

%Vor%     
MrPHP 06.08.2009, 21:28
quelle

1 Antwort

23
  • Sie können keine Volltextindizes (oder irgendeine Art von Index) für mehrere Tabellen in MySQL definieren. Jede Indexdefinition referenziert genau eine Tabelle. Alle Spalten in einem bestimmten Volltextindex müssen aus derselben Tabelle stammen.

  • Die als Argumente für die Funktion MATCH() angegebenen Spalten müssen Teil eines einzigen Volltextindex sein. Sie können mit einem einzelnen Aufruf von MATCH() nicht alle Spalten durchsuchen, die Teil aller Volltextindizes in Ihrer Datenbank sind.

  • Volltext indexiert nur Indexspalten, die mit den Datentypen CHAR , VARCHAR und TEXT definiert sind.

  • Sie können in jeder Tabelle einen Volltextindex definieren.

Beispiel:

%Vor%

Und dann können Sie eine Abfrage schreiben, die den jeweiligen Volltextindex verwendet:

%Vor%     
Bill Karwin 06.08.2009 21:53
quelle

Tags und Links