Sortieren von Zeichenfolgenspalten mit eingebetteten Zahlen in SQL
In SQL ist es möglich, Zeichenfolgenspalten mit Zahlen mithilfe bestimmter Techniken zu sortieren. Dies kann nützlich sein, wenn der natürliche Sortieralgorithmus von Datenbanken wie MySQL nicht die gewünschten Ergebnisse liefert.
Um eine benutzerdefinierte Sortierung von Zeichenfolgenspalten mit Zahlen zu erreichen, können mehrere Ansätze verwendet werden:
Verwenden von CAST und SUBSTRING:
<code class="sql">SELECT * FROM table ORDER BY CAST(SUBSTRING(column,LOCATE(' ',column)+1) AS SIGNED)</code>
Diese Technik unterteilt die Spalte in zwei Teile: das Präfix vor dem Leerzeichen und die Zahl danach. Die Zahl wird dann zum Vergleich in einen numerischen Typ (in diesem Fall SIGNED) umgewandelt.
Verwendung von SUBSTRING_INDEX:
<code class="sql">ORDER BY SUBSTRING_INDEX(st, " ", 1) ASC, CAST(SUBSTRING_INDEX(st, " ", -1) AS SIGNED)</code>
Dieser Ansatz verwendet die Funktion SUBSTRING_INDEX, um Extrahieren Sie die Präfix- und Nummernkomponenten. Anschließend wird zuerst nach dem Präfix und dann nach der umgewandelten Zahl sortiert.
Hinweis: Wenn das Spaltenmuster von „WORD_space_NUMBER“ abweicht, ist möglicherweise ein anderer Ansatz erforderlich.
Beispiele:
Sample Data | Natural Sorting | Custom Sorting |
---|---|---|
a 1, a 12, a 6, a 11 | a 1, a 12, a 2, a 3 | a 1, a 2, a 3, a 12 |
b 1, b 12, b 6, b 11 | b 1, b 12, b 2, b 3 | b 1, b 2, b 3, b 12 |
Durch den Einsatz dieser Techniken ist es möglich, Zeichenfolgenspalten mit eingebetteten Zahlen auf individuelle Weise zu sortieren und so sicherzustellen, dass die Ergebnisse den spezifischen Anwendungsanforderungen entsprechen.
Das obige ist der detaillierte Inhalt vonWie sortiere ich Zeichenfolgenspalten mit eingebetteten Zahlen in SQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!