Non penso sia fattibile con MySQL che non ha il natsort.
Con un po' di php...
Codice PHP:
<?php
$array = array();
$array[] = 'D - 349 GAV';
$array[] = 'D - 349.251 2 TRA';
$array[] = 'D - 349.251 200 PAV';
$array[] = 'D - 349.251 22 PAV';
$array[] = 'D - 349.251 22 STA';
$array[] = 'D - 349.251 ABB';
$array[] = 'D - 349.251 ZAC';
$array[] = 'D - 350 ABB';
print "<strong>Ordine naturale stretto</strong></br/>";
print "Prima :<br/>";
foreach ($array as $value) {
print "$value<br/>";
}
natsort($array);
print "Dopo :<br/>";
reset($array);
foreach ($array as $value) {
print "$value<br/>";
}
//----- Rimpiazzo spazio da slash
print "<strong>Ordine naturale corretto</strong></br/>";
foreach ($array as $key => $value) {
$array[$key] = str_replace(' ','/',$array[$key]);
}
natsort($array);
print "Dopo :<br/>";
reset($array);
foreach ($array as $value) {
$value = str_replace('/',' ',$value);
print "$value<br/>";
}
?>
Dà.
Ordine naturale stretto
Prima :
D - 349 GAV
D - 349.251 2 TRA
D - 349.251 200 PAV
D - 349.251 22 PAV
D - 349.251 22 STA
D - 349.251 ABB
D - 349.251 ZAC
D - 350 ABB
Dopo :
D - 349 GAV
D - 349.251 2 TRA
D - 349.251 22 PAV
D - 349.251 22 STA
D - 349.251 200 PAV
D - 349.251 ABB
D - 349.251 ZAC
D - 350 ABB
Ordine naturale corretto
Dopo :
D - 349.251 2 TRA
D - 349.251 22 PAV
D - 349.251 22 STA
D - 349.251 200 PAV
D - 349.251 ABB
D - 349.251 ZAC
D - 349 GAV
D - 350 ABB