Mailinglisten-Archive |
> Nur aus Interesse: wie kann man bei Kai's Lösung die Tabellen unter > Berücksichtigung der Mehrdeutigkeiten verknüpfen? na einfach mit id zu id tabelle Tab1 (ID, Wort, Lang) Tab2 (local_ID, foreign_ID) > > > Ich habe jetzt eine akzeptable Geschwindigkeit mit dieser Lösung: > > $sql = "SELECT * "; > $sql .= " FROM $tabelle AS tab_id "; > $sql .= " INNER JOIN $tabelle1 AS tab_de ON tab_id.id_de = tab_de.id_de "; > $sql .= " INNER JOIN $tabelle2 AS tab_ro ON tab_id.id_ro = tab_ro.id_ro "; > $sql .= " ORDER BY tab_de.deu, tab_ro.rum "; ich würde es so machen: SELECT `tab_de`.`deu`, `tab_ro`.`rum` FROM `tab_de` LEFT JOIN `tab_id` ON `tab_de`.`id_de` = `tab_id`.`id_de` LEFT JOIN `tab_ro` ON `tab_id`.`id_ro` = `tab_ro`.`id_ro` ORDER BY `tab_de`.`deu`, `tab_ro`.`rum` > $sql .= " WHERE tab_de.deu = '$such_de' "; > $sql .= " WHERE tab_de.deu like '%$such_de%' "; für diese zwei einen INDEX auf `tab_de`.`deu` > $sql .= " WHERE MATCH (tab_de.deu) AGAINST ('$such_de') "; für diesen einen FULLTEXT auf `tab_de`.`deu` > Die Bedingungen habe ich wieder entfernt wegen der tollen Möglichkeiten > von PHP (vor allem "soundex()" in Kombination mit "spliti()"): das könnte aber irgendwann ziemlich viel werden oder? > > $suchstring12 = soundex($suchstring); > $deu_array = spliti ('[, ]', $deu); > for($ig=0;$ig<(count($deu_array));$ig++) > { > $suchstring6d = soundex($deu_array[$ig]); > if ( $suchstring12==$suchstring6d ) {$gefunden=1;} > } > > Ich weiß, SOUNDEX gibt's auch für SELECT, aber kann das obige Beispiel > auch in mySQL realisiert werden? WHERE SOUNDEX(`tab_de`.`deu`) = SOUNDEX('suchstring') -- Sebastian Mendel www.sebastianmendel.de www.tekkno4u.de www.nofetish.com -- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive