string sql="SELECT q_id,mc_id FROM multi_choice_question WHERE q_id='"+Session["maintain_quiz_id"].ToString()+"' ORDER BY mc_id ASC";mc_id在数据库里面的类型是Text,范围是1-20之间的整数。如果我想搜索结果按mc_id从小到大排列,sql语句应该怎样改动呢?
select * from qb_log order by string sql="SELECT q_id,mc_id FROM multi_choice_question WHERE q_id='"+Session["maintain_quiz_id"].ToString()+"' ORDER BY CAST(mc_id AS int(20)) ASC";
第一个是将 mc_id 转化成 数值型的数据,就是在你的SQL中最后排序的时候,先将这列转化成数值型的,不同的数据类型转换函数不一样,你可以自己查一下;
第二个方法就是在保存 mc_id 的时候将数据格式化成 两位长的,不足两位的在前面补“0”,这样你的SQL就可以直接用了。
text服务器代码页中的可变长度非 Unicode 数据的最大长度为 231-1 (2,147,483,647) 个字符。当服务器代码页使用双字节字符时,存储量仍是 2,147,483,647 字节。存储大小可能小于 2,147,483,647 字节(取决于字符串)。