Buongiorno a tutti ,,

Non riesco a capire una cosa su sql ?

Facendo una query del tipo :

$sql = "SELECT * FROM `tab` where
data = '$datapost' or data ='$dat' ";

vorrei ordinare i record su un campo varchar "ntit" che contiene numeri consecutivi ,,

ma ci sono anche numeri tipo 544-2 o 423-9 , oppure numeri che nel DB ,
ho inserito alternandoli con altri ,

come posso fare esguire un ordinamento numerico ,,

ho provato anche a finire la select con "order by ntit ASC " oppure DESC
ma mi inizia l ' ordine da 99 o 100 , e mi incasina tutto la numerazione
es: dopo il 39 ci mette il 4 e cosi via ,,,

GRAZIE