請教SQL問題,急!!!!!

anycon 2002-09-12 03:28:07
問題:
當mold_no在tables的數值按順序為:"1,2,3,4,5,6,7,8,9,10,11,12"時,
執行"select * from tables where id='".$id."' order by mold_no"
(注意:不能按id排!)
后網頁卻顯示
1
10
11
12
2
3
4
5
6
7
8
9
而不是我想要的"1,2,3,4,5,6,7,8,9,10,11,12",我應當怎麼辦??
...全文
60 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
anycon 2002-09-13
  • 打赏
  • 举报
回复
謝謝!
呵呵,雖然我快沒分了但為了信誉,還是給!!
pantech_36 2002-09-13
  • 打赏
  • 举报
回复
非数字字符加一都会变成一的(mysql中).所以看看上面的办法合不合式
pantech_36 2002-09-13
  • 打赏
  • 举报
回复
select mold_no,...,LENGTH(mold_no)as strid from test order by strid asc,mold_no asc
朋友你是不是还有问题?
anziqi 2002-09-13
  • 打赏
  • 举报
回复
select mold_no,id,...,(mold_no+1) as strid from tables where id='".$id."' order by strid asc

这样可以的.他是把mold_no+1给排序了.跟你把mold_no以数值型排序是一样的.


anycon 2002-09-13
  • 打赏
  • 举报
回复
感謝pantech_36(*_*阿苯猫^_^)!!
如果mold_no的值是純字符,你的"用(mold_no+1)就是把mold_no转成了数值型然后再用它的别名排序即数值排序"是否還有效??

答完才給分!
pantech_36 2002-09-13
  • 打赏
  • 举报
回复
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就是你想要的结果.
anycon 2002-09-12
  • 打赏
  • 举报
回复
Sorry!沒錯,是字符型的,數字只是舉例
如是字符型会先比较头一位的,再比較下一位,
在此情況下,我還是想要如以上問題的顯示結果,有沒有辦法???
或者什麼型態的field(不能是数值型,因為是要可輸入字符的)可以做到以上問題的
顯示結果??

anziqi 2002-09-12
  • 打赏
  • 举报
回复
你的肯定如楼上所说.

是字符型的.他会先比较头一位的.

如是是数字型的不会出现这种情况.
pantech_36 2002-09-12
  • 打赏
  • 举报
回复
你的mold_no是字串吧,数值不会如此吧
pantech_36 2002-09-12
  • 打赏
  • 举报
回复
select *,(mold_no+1) as strid from tables where id='".$id."' order by strid asc
ly_zhky 2002-09-12
  • 打赏
  • 举报
回复
"select * from tables where id='".$id."' order by mold_no asc"
or "select * from tables where id='".$id."' order by mold_no desc"

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧