also erstmal alles Gute an den Thread zum bevorstehenden 6. Geburtstag
Die Lösung von Froschkönig84 ist schon nicht schlecht, macht aber unter bestimmten MySQL-Versionen Probleme (ich nenne es mal MySQL-Replace-Problem für die suchmaschine

).
Bsp. MySQL-Version 5.0.45:
bei jedem Datensatz wird mit dem modifizierten Text aus dem Vergleich mit dem vorhergehenden Datensatz gearbeitet
Beispiel:
Code:
mysql> SET @heuhaufen = "Ich fahre kein Auto, weil mir ein Auto zu teuer ist. Ich finde aber das ein oder andere Auto sehr schön!";
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT suchwort,
-> REPLACE(@heuhaufen,suchwort, "") as HeuNeu,
-> CHAR_LENGTH(REPLACE(@heuhaufen,suchwort, "")) as Anzahl
-> FROM suchworttable;
+----------+----------------------------------------------------------------------------------------------+--------+
| suchwort | HeuNeu | Anzahl |
+----------+----------------------------------------------------------------------------------------------+--------+
| Auto | Ich fahre kein , weil mir ein zu teuer ist. Ich finde aber das ein oder andere sehr schön! | 92 |
| Bus | Ich fahre kein , weil mir ein zu teuer ist. Ich finde aber das ein oder andere sehr schön! | 92 |
| Zug | Ich fahre kein , weil mir ein zu teuer ist. Ich finde aber das ein oder andere sehr schön! | 92 |
+----------+----------------------------------------------------------------------------------------------+--------+
3 rows in set (0.00 sec)
oder für die Busfahrer:
Code:
mysql> SET @heuhaufen = "Ich fahre kein Bus, weil mir ein Bus zu teuer ist. Ich finde aber den ein oder anderen Bus sehr schön!";
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT suchwort,
-> REPLACE(@heuhaufen,suchwort, "") as HeuNeu,
-> CHAR_LENGTH(REPLACE(@heuhaufen,suchwort, "")) as Anzahl
-> FROM suchworttable;
+----------+--------------------------------------------------------------------------------------------------------+--------+
| suchwort | HeuNeu | Anzahl |
+----------+--------------------------------------------------------------------------------------------------------+--------+
| Auto | Ich fahre kein Bus, weil mir ein Bus zu teuer ist. Ich finde aber den ein oder anderen Bus sehr schön! | 102 |
| Bus | Ich fahre kein , weil mir ein zu teuer ist. Ich finde aber den ein oder anderen sehr schön! | 93 |
| Zug | Ich fahre kein , weil mir ein zu teuer ist. Ich finde aber den ein oder anderen sehr schön! | 93 |
+----------+--------------------------------------------------------------------------------------------------------+--------+
3 rows in set (0.00 sec)
Gleiches Passiert, wenn man den Text direkt in das Query schreibt, anstatt die MySQL-Variable damit zu belegen!
Eine Lösung für dieses Problem währe, den Text direkt im Query der Variablen zuzuweisen:
Code:
mysql> SELECT (@heuhaufen := "Ich fahre kein Bus, weil mir ein Bus zu teuer ist. Ich finde aber den ein oder anderen Bus sehr schön!") AS Heuhaufen,
-> suchwort,
-> REPLACE(@heuhaufen,suchwort, "") AS HeuNeu,
-> CHAR_LENGTH(REPLACE(@heuhaufen,suchwort, "")) AS Anzahl
-> FROM suchworttable;
+--------------------------------------------------------------------------------------------------------+----------+--------------------------------------------------------------------------------------------------------+--------+
| Heuhaufen | suchwort | HeuNeu | Anzahl |
+--------------------------------------------------------------------------------------------------------+----------+--------------------------------------------------------------------------------------------------------+--------+
| Ich fahre kein Bus, weil mir ein Bus zu teuer ist. Ich finde aber den ein oder anderen Bus sehr schön! | Auto | Ich fahre kein Bus, weil mir ein Bus zu teuer ist. Ich finde aber den ein oder anderen Bus sehr schön! | 102 |
| Ich fahre kein Bus, weil mir ein Bus zu teuer ist. Ich finde aber den ein oder anderen Bus sehr schön! | Bus | Ich fahre kein , weil mir ein zu teuer ist. Ich finde aber den ein oder anderen sehr schön! | 93 |
| Ich fahre kein Bus, weil mir ein Bus zu teuer ist. Ich finde aber den ein oder anderen Bus sehr schön! | Zug | Ich fahre kein Bus, weil mir ein Bus zu teuer ist. Ich finde aber den ein oder anderen Bus sehr schön! | 102 |
+--------------------------------------------------------------------------------------------------------+----------+--------------------------------------------------------------------------------------------------------+--------+
3 rows in set (0.02 sec)
oder auf eine aktuelle MySQL-Version umzusteigen!
Kurrioser weise tritt der Fehler im PHPMyAdmin nicht auf, nur im CLI und per PHP

In MySQL 5.0.84 tritt der Fehler nicht mehr auf - ab welcher Version er behoben wurde weiß ich allerdings nicht!
So, nun darf der Thread in Ruhe weiterruhen
