Hi,
$search = 'MATCH (
U
.vorname
,U
.nachname
) AGAINST (''.mysql_real_escape_string($_GET['name']).'' IN BOOLEAN MODE)';jetzt habe ich gelesen, dass die suche schneller geht wenn ich über die beiden spalten vorname und nachname einen FULLTEXT lege. Habe ich auch gemacht - dieser FULLTEXT in der Datenbank beinhaltet die beiden Felder vorname und nachname und trägt den namen "suche".
Ohne fulltext-index gehts ja net per match against, oder täusch ich mich *g*
Kann ich den sql-code nun so lassen, oder muss das ganze dann so heißen:
$search = 'MATCH (
U
.suche
) AGAINST (''.mysql_real_escape_string($_GET['name']).'' IN BOOLEAN MODE)';Es kommt so immer zu fehlern.
Der Name ist irrelevant. Wichtig ist, daß du genau die Spalten angibst, über die du auch den Index gelegt hast. Wolltest du in einzelnen Spalten suchen, so müsstest über jede Splate einen eigenen Index legen.
Es sollte etwa so heißen:
$search="SELECT irgendwas FROM meinertabelle WHERE MATCH(vorname,nachname) AGAINST ('wort1 wort2... ' IN BOOLEAN MODE)"
Wird automatisch erkannt, dass auf den feldern ein FULLTEXT sitzt oder was mache ich falsch?
»»
Spalten angeben, über die der Index liegt. Per match against kann man meines Wissens nur fulltext-indices ansprechen, aber ev täusch ich mich.
schöne Grüße