Ich habe eine Tabelle wie dieseMehrere Variablenzuweisungen mit einzelnen Spalt als Ergebnis
+----+------+
| ID | Name |
+----+------+
| 0 | Foo |
| 1 | Bar |
+----+------+
Basierend auf den Tabellenzeilen ich in jeder Zeile ein Ranking berechnen will, so dass eine Abfrage wie
SELECT *, [calculation] AS ranking
FROM table
ORDER BY ranking DESC
wäre so etwas wie
+----+------+---------+
| ID | Name | Ranking |
+----+------+---------+
| 0 | Bar | 3 |
| 1 | Foo | 1 |
+----+------+---------+
Mein Problem ist, zurückkehren, dass ich mehrere Zuweisungen pro Zeile ausführen müssen, w ohne weitere Spalten zu bekommen; im Grunde so etwas wie
@ranking:= 0
IF(Name LIKE $firstTerm, @ranking := @ranking + 1, @ranking := @ranking)
IF(Name LIKE $secondTerm, @ranking := @ranking + 1, @ranking := @ranking)
IF(Name LIKE $thirdTerm, @ranking := @ranking + 1, @ranking := @ranking)
Für jede Reihe, so dass am Ende habe ich entweder 0, 1, 2 oder 3 als eine zusätzliche Spalte für jeden Eintrag in meiner Tabelle
EDIT: Theoretisch eine dynamisch generierte Abfrage wie
würde funktionieren wie erwartet, aber Sie können sich wahrscheinlich vorstellen, wohin dies führt, wenn wir mehr als 3 Bedingungen haben!
Erzählen Sie uns mehr über diese Berechnung – Strawberry
es angenommen hat mehr LIKE Vergleiche sein, so dass die mehr Spiele haben, ist, je höher es – RoiEX
Platz @Strawberry ich meine Frage mehr korrekt sein bearbeiten – RoiEX