"select * from tables where id='".$id."' order by mold_no asc"
or "select * from tables where id='".$id."' order by mold_no desc"

解决方案 »

  1.   

    select *,(mold_no+1) as strid from tables where id='".$id."' order by strid asc
      

  2.   

    你的mold_no是字串吧,数值不会如此吧
      

  3.   

    Sorry!沒錯,是字符型的,數字只是舉例
    如是字符型会先比较头一位的,再比較下一位,
    在此情況下,我還是想要如以上問題的顯示結果,有沒有辦法???
    或者什麼型態的field(不能是数值型,因為是要可輸入字符的)可以做到以上問題的
    顯示結果??
      

  4.   

    select mold_no,id,...,(mold_no+1) as strid from tables where id='".$id."' order by strid asc
    这句就可以搞定的,我用(mold_no+1)就是把mold_no转成了数值型然后再用它的别名排序即数值排序,那就不会有字符的困扰了.这样只是在你读数据时多了一个strid字段,你不用它输出就行了,你输出mold_no就是你想要的结果.
      

  5.   

    感謝pantech_36(*_*阿苯猫^_^)!!
    如果mold_no的值是純字符,你的"用(mold_no+1)就是把mold_no转成了数值型然后再用它的别名排序即数值排序"是否還有效??答完才給分!
      

  6.   

    select mold_no,id,...,(mold_no+1) as strid from tables where id='".$id."' order by strid asc这样可以的.他是把mold_no+1给排序了.跟你把mold_no以数值型排序是一样的.
      

  7.   

    select mold_no,...,LENGTH(mold_no)as strid from test order by strid asc,mold_no asc
    朋友你是不是还有问题?
      

  8.   

    非数字字符加一都会变成一的(mysql中).所以看看上面的办法合不合式