Ich versuche, ein Skript zu erstellen, das einen passenden Prozentsatz zwischen meinen Tabellenzeilen findet. Zum Beispiel meine mySQL-Datenbank in der Tabelle Produkte enthält das Feld Name (indiziert, FULLTEXT) mit Werten wie
LG 50PK350 PLASMA TV 50" Plasma TV Full HD 600Hz
LG TV 50PK350 PLASMA 50"
LG S24AW 24000 BTU
Aircondition LG S24AW 24000 BTU Inverter
Wie Sie sehen können, haben sie alle dasselbe Schlüsselwort. Aber der 1. Name und der 2. Name sind sich ähnlicher. Außerdem haben der 3. und 4. Name mehr ähnliche Schlüsselwörter als der 1. und 2.
Meine mySQL-DB enthält Tausende von Produktnamen. Ich möchte die Namen finden, die mehr als einen bestimmten Prozentsatz (sagen wir 60 %) an Ähnlichkeit aufweisen.
Zum Beispiel werden, wie gesagt, 1. und 2. (und jeder andere Name), die zu mehr als 60 % übereinstimmen, in einem gruppenähnlichen Format angezeigt, damit ich weiß, dass diese Produkte ähnlich sind. 3. und 4. und alle anderen, die zu mehr als 60 % übereinstimmen, werden in einer anderen Gruppe wiedergegeben, um mir mitzuteilen, dass diese Produkte übereinstimmen.
Wenn es möglich ist, wäre es toll, die Schlüsselwörter, die alle gruppierten übereinstimmenden Namen erfüllen, auszugeben. Zum Beispiel LG S24AW 24000 BTU ist das Schlüsselwort, das im 3. und 4. Namen enthalten ist.
Am Ende werde ich eine Liste mit all diesen Stichwörtern erstellen.
Was ich jetzt habe, ist die folgende Abfrage (wie Jitamaro vorgeschlagen)
Select t1.name, t2.name From products t1, products t2
die ein neues Namensfeld neben allen anderen Namen erzeugt. Entschuldigen Sie, dass ich nicht weiß, wie ich es richtig erklären soll, aber das ist, was es tut: (Die echten Werte sind Produktnamen wie oben)
Vor der Abfrage
-name-
A
B
C
D
E
Nach der Abfrage
-name- -name-
A A
B A
C A
D A
E A
A B
B B
C B
D B
E B
.
.
.
Gibt es eine Möglichkeit, entweder mit mySQL oder PHP, die mir die passenden Namen findet und die Schlüsselwörter extrahiert, wie ich es oben beschrieben habe? Bitte teilen Sie Code-Beispiele.
Vielen Dank an die Gemeinschaft.