mysql数据库
order by 10.11中的10.11是数字,这句可以执行
请问是按什么排序的,我在百度上没有查到有这种用法的说明

解决方案 »

  1.   

    ORDER BY
    后面可以是
    字段名, 如order by id,name
    表达式,如 order by id*id
    还可以是SELECT COL1,COL2,。。中的列号比如
      select id,name,age from tbl1 order by 2, 第二列是 name ,按第二列排序,也就是按 name  10.11 会被先取整。 order by 10.11 也就 order by 10.
      

  2.   

    建议直接参考MySQL的官方文档,比百度要可靠http://dev.mysql.com/doc/refman/5.1/zh/sql-syntax.html#select
     [ORDER BY {col_name | expr | position}
      

  3.   

    原文件如下:

    <isNotEmpty prepend="and" property="b2bCommision">
     <![CDATA[
     IFNULL(P.B2B_SUSPEND,0)+IFNULL(P.BSP_SUSPEND,0)<2
      ]]>
     Order By SF_Get_Max_Commision(P.BSP_Suspend,P.B2b_Suspend,BSP_Commision,B2B_Commision) Desc
     </isNotEmpty>
     Limit 10其中SF_Get_Max_Commision(P.BSP_Suspend,P.B2b_Suspend,BSP_Commision,B2B_Commision)
    这个方法返回的是一个字段的值,并不表示列号,您说的第二种格式“表达式,如 order by id*id ”
    这个表达式如果是数字也会按列号来排序吗?还是这个业务逻辑有问题?
      

  4.   

    你说的这种即是按表达式的结果来排也就是第二种。order by id*id, 或者 order by left(name,1) 都是按表达式的结果来排。对每一行计划表达式的结果,然后排序。和第三种无任何关系。你的SQL语句中哪儿来的 order by 10.11 ?!,提问时请尽量使用原句来问,否则没人能正确的理解的。