2016-04-01 26 views
1

Tabloda "sto11, sto9, sto8, sto13" gibi verilerle bir "ana makine_adı" sütunum var. Bu emriMySQL - Dize deseninden sonra sayılara göre sırala

SELECT * FROM hosts ORDER BY (numbers after "sto"); 

Yani sorgu döndürür verileri: Ben gibi bir sorgu ihtiyacım sto8,

sto13 sto9, sto11, mysql bunu yapmanın bir yolu var mı?

+1

Önek her zaman aynı mı? – BenM

cevap

1

Önekin (stoğun) sabitlendiği göz önüne alındığında, o satır girişinin 4. öğesinden başlayarak, bir alt dizeyi işaretsiz olarak atamalısınız. Böyle bir şey:

SELECT hosts.*, CAST(SUBSTRING(hosts.<column with order>, 4) AS UNSIGNED) AS orderednumbers 
FROM hosts 
ORDER BY orderednumbers; 
+1

bir çekicilik gibi çalıştı, teşekkürler! –