2016-11-21 2 views
-1

My DB Tabellenfeld enthalten Wert mit Array von Daten sortieren ich den ersten Wert alleinWie ein Array-Wert mit PHP MySQL Query

Pid | Price 
    1 | 213,4566,112 
    2 | 100,452,567 
    3 | 653,344,6322 
    4 | 55,222,42,44 
    5 | 522 

Ich möchte es sortieren, müssen mit Preis ersten Wert aufsteigend sortiert werden um wie unten

Pid | Price  
    4 | 55,222,42,44 
    2 | 100,452,567 
    1 | 213,4566,112 
    5 | 522 
    3 | 653,344,6322 

ich brauche eine Mysql Abfrage PHP.

+6

Sie sollten Komma-getrennte Daten in einem Feld wie diesem nicht speichern. Sie sollten eine separate Tabelle verwenden, um die Preise zu speichern, eine Zeile pro Preis (wenn Sie also die PID in dieser Tabelle nachschlagen, erhalten Sie mehrere Zeilen zurück). –

Antwort

2

können Sie die folgende Abfrage verwenden SUBSTRING_INDEX mit:

SELECT * FROM table 
ORDER BY CAST(SUBSTRING_INDEX(Price, ',', 1) AS SIGNED) ASC 

Demo:http://sqlfiddle.com/#!9/3f7b7/2

Hinweis: Sie sollten eine Spalte wie Price mit Komma getrennt Werte vermeiden.
Normalisieren Sie Ihre Datenbank/Tabellen!

+0

(+0) aber Normalisierung ist der richtige Weg zu gehen – Strawberry

+0

Ich denke, dass Sie tatsächlich wollen 'CAST (SUBSTRING_INDEX (Preis, ',', 1) AS SIGNED)' so dass sie als Zahlen, keine Zeichenfolgen sortiert sind. Andernfalls kann "100" (Pid 2) zuerst sein. –

+0

@ RocketHazmat - das ist richtig! aktualisiert und hinzugefügt Demo –