Mybatis非动态排序,排序无效
 <!--多条件查找-->
    <select id="findAllByFilter" parameterType="net.tiangu.rptns.entity.auth.Menus"
            resultType="net.tiangu.rptns.entity.auth.Menus">
        SELECT id,code,m_index mIndex,title,url,status,sub_id subId FROM t_menus
        <where>
            <include refid="query_where"></include>
        </where>
        order by mIndex DESC,subId ASC
    </select>

按mIndex和subId进行排序,但查到的结果并没有排序,sql语句在数据库中测试是可以正常排序的,请问这是什么原因呢?

3个回答

debug打印sql看一下

qq_34841631
Carrot_hs 这里的findAllByFilter直接映射到一个interface的,被调用,怎么打印sql?我不会呀
接近 2 年之前 回复

1、定义列表名
在SELECT子句中可以使用别名来代替原来的列名。可以通过以下四种方式来定义列别名:
a、使用AS关键字,SELECT name AS 姓名 FROM student;
b、带双引号的列别名,SELECT name "姓名" FROM student;
c、带单引号的列别名,SELECT name '姓名' FROM student;
d、不带引号的列别名,SELECT name 姓名 FROM student;
如果列别名包含空、特殊符号等,那么必须将列别名放在双引号或者单引号内。

2、列别名的几种使用情况
a、字段为英文,为方便查看,可以使用中文列别名代替英文字段。
b、多表查询时出现相同的列名。如果对多个数据表进行查询,查询结果中可能会出现相同的列名,很容易出现误解,这时候应采用列别名来解决上述问题。
c、在查询结果中添加列,在表中出现计算产生新的列时,可以使用列别名。
d、同级结果中出现的列,使用聚合函数语句对数据查询时,需要对产生的统计字段使用列表名。

另外需要注意,字段别名可以使用在ORDER BY子句中,但是不能使用在where,group by或having语句中。

qq_34841631
Carrot_hs 谢谢你,回答了这么多,但是似乎不是列名称的问题
接近 2 年之前 回复

debug打印sql看一下

qq_34841631
Carrot_hs 这里的findAllByFilter直接映射到一个interface的,被调用,怎么打印sql?我不会呀
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
mybatis 分页排序, 排序无效
![图片说明](https://img-ask.csdn.net/upload/201708/27/1503799779_25652.png)
Mybatis排序无效问题解决
Mybatis排序无效问题解决 [url]http://blog.csdn.net/hongweigg/article/details/51783002[/url]
mybatis动态排序
select id="getLinkTypeListByCondition" parameterType="java.util.Map" resultMap="linkType"> SELECT * FROM OD_LINK_TYPE where> LINK_URI != BASE_TYPE_URI if test=
mybatis简单实现动态排序
Mybatis-PageHelper实现动态排序 // PageHelper的排序参数格式:price asc; price desc; if (StringUtils.isNotBlank(orderBy)){ if (Const.ProductListOrderBy.PRICE_ASC_DESC.contains(orderBy)){   String[] orderByArray...
Mybatis实现 动态排序
Mybatis实现 动态排序 在数据展示时,很有可能碰到,需要动态排序的需求。当数据比较少的时候,还可以前端排序,但是,当数据非常大,尤其是涉及到分页的时候,就必须要用后端解决了。 以下,提供一种后端动态排序解决方案。 比如,现在我要查询用户信息(User)表。 可以在查询时,接口中,多添加两个字段。 orderField(排序列) orderType(排序规则,升降序) 之后,在mapper...
Mybatis 动态排序 #{} ${}问题
Mybatis 动态排序 #{} ${}问题 在写Mybatis动态排序是遇到一个问题,开始,我是这样写的 &amp;lt;if test=&quot;orderField !=null and orderField != '' &quot;&amp;gt; order by t.#{orderField} #{orderType} &amp;lt;/if&amp;gt; 发现报错,后来经过查阅资料发现,用#{}会多个' '导致SQL语...
Mybatis 动态排序
  自己用mybatis进行动态排序的时候发现排序并没有实现,代码如下: select rownum num,a.* from from bto_c3.bkr_orderpackage_all a order by #{toptype} desc where rownum &amp;amp;amp;lt; 11   #是将传入的值当做字符串的形式,eg:select id,name,age from stude...
MyBatis动态排序问题
MyBatis动态生成排序的问题 在使用MyBatis时加入来按指定字段进行排序
mybatis 分页排序, 排序无效, sql在Oracle客户端可以排序
![图片说明](https://img-ask.csdn.net/upload/201708/27/1503811177_100242.png)
MyBatis动态参数排序的注意事项
文章来源:http://blog.csdn.net/weibing_huang/article/details/7368556 字符串替换 默认情况下,使用#{}格式的语法会导致MyBatis创建预处理语句属性并以它为背景设置安全的值(比如?)。这样做很安全,很迅速也是首选做法,有时你只是想直接在SQL语句中插入一个不改变的字符串。比如,像ORDER BY,你可以这样来使用: ORDER B
mybatis中order by 排序无效的问题
已经确定参数已经传入了,而且用的也是$,而不是#,但是order by语句还是不起作用,sql语句试过,是可以排序的,但是在映射文件了就不起作用,还有可能是因为什么呢。是mysql数据库。
Mybatis传参使用order by排序无效问题解决方法
今天遇到这么个问题,用easyui的romoteSort进行单个字段的全局排序 在sql上拼接order by  #{sort:VARCHAR}   #{order:VARCHAR} 传参没问题,sql能正常执行,debug返回列表很明显没有排序啊 一步一步排除,确定问题出在sql 对于这种#{sort:VARCHAR} 的变量,Mybatis会将其视为字符,给变量值加上引号 假如传入参...
MyBatis中order by排序无效的问题
在使用MyBatis解析xml进行排序的时候,遇见排序无效的问题! #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。如:order by #{user_id},如果传入的值是111,那么解析成sql时的值为order by “111”, 如果传入的值是id,则解析成的sql为order by “id”。 $将传入的数据直接显示生成在sql中。如:order by ${user_id}
vb动态排序vb动态排序
超漂亮vb排序,动态排序,排序算法希望它对你有帮助
动态排序和动态查询条件
试想如下情景: 有个数据查询页面,有很多条件供用户查询数据,但用户每次不一定所有条件都用到。返回的结果显示在DataGrid中,用户可以点击列标题来决定用哪个列来排序。 这里遇到的问题就是每次查询时查询插件和排序的列是不确定的,但是最大集是确定的。 一般做法是动态构造SQL语句,然后使用EXECUTE执行。这里不做说明,如果不采用动态构造查询语句可以如下处理,以SQL做实际示范:
datagrid sort 排序无效
为什么我的datagrid 里sort 排序无效? 可以触发事件 但是没有效果,页面只是刷新了一下。rnrn主要代码如下:rnrn绑定事件rnthis.DataGrid1.SortCommand += new System.Web.UI.WebControls.DataGridSortCommandEventHandler(this.DataGrid1_SortCommand);rnrnrnrn绑定数据rnpublic void BindGrid(string sortfield)rnrn ...rn rn SqlDataAdapter cm=new SqlDataAdapter(strcm,cn);rn DataSet ds=new DataSet();rn cm.Fill(ds); rn DataView dv = ds.Tables [0].DefaultView ;rn dv.Sort = sortfield;rn DataGrid1.DataSource =ds;rn DataGrid1.DataBind();rnrn ...rnrnrnrn触发事件rnprivate void DataGrid1_SortCommand(object source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e)rn rn BindGrid(e.SortExpression);rn rn
dataview筛选、排序无效
我使用dataview进行筛选、排序 但是没有效果。rn请大家看看是什么问题。rndv = ds.Tables[0].DefaultView;rndv.RowFilter = "装机容量 = '"+filter+"'"; 进行筛选无效rndv.Sort = sorter+" ASC"; 进行排序同样没有效果。rn不知道为什么,请大家帮助
CListView排序为什么无效?
为什么我在CListView中使用下面的排序代码进行排序,但是却无效,数据根本不动。rnrn/////////////////////////////////////////////////////////////////////////////rn// CSortList message handlersrn//处理顶部按钮被按下的消息rnvoid CSortList::OnHeaderClicked(NMHDR* pNMHDR, LRESULT* pResult) rnrn HD_NOTIFY *phdn = (HD_NOTIFY *) pNMHDR; rn if( phdn->iButton == 0 )rn rn //设置排序方式rn if( phdn->iItem == m_nSortedCol )rn m_fAsc = !m_fAsc;rn elsern m_fAsc = TRUE;rn //设置排序的列rn m_nSortedCol = phdn->iItem;rn //开始排序rn SortItems( ListCompare, (DWORD)this ); rn rnrnrn//排序函数实现rnint CALLBACK ListCompare(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)rnrn //通过传递的参数来得到CSortList对象指针rn CSortList* pV=(CSortList*)lParamSort;rn rn //通过ItemData来确定数据rn DEMO_DATA* pInfo1=strAllData+lParam1;rn DEMO_DATA* pInfo2=strAllData+lParam2;rn CString szComp1,szComp2;rn int iCompRes;rn switch(pV->m_nSortedCol)rn rn case(0):rn //以第一列为根据排序rn szComp1=pInfo1->szName;rn szComp2=pInfo2->szName;rn iCompRes=szComp1.Compare(szComp2);rn break;rn case(1):rn //以第二列为根据排序rn if(pInfo1->iAge == pInfo2->iAge)rn iCompRes = 0;rn elsern iCompRes=(pInfo1->iAge < pInfo2->iAge)?-1:1;rn break;rn default:rn ASSERT(0);rn break;rn rn //根据当前的排序方式进行调整rn if(pV->m_fAsc)rn return iCompRes;rn elsern return iCompRes*-1;rn
bootstrap-table排序无效
[img=https://img-bbs.csdn.net/upload/201804/18/1524030780_170823.png][/img]rn我设置了排序可是页面点击就是没有反应,请问是为什么rn
【求助】mysql排序非规则排序。
现在有这样的5条记录rnrnidrn1rn2rn3rn4rn5rnrn我想得到的结果是rnrnidrn3rn1rn2rn4rn5rnrn请问如何做,谢谢大家。。
排序的稳定性和非稳定性
<p style="background-color:transparent;color:#424242;text-align:left;">n 用最轻捷的Javascript脚本n</p>n<p style="background-color:transparent;color:#424242;text-align:left;">n 最朴素直白的程序用语n</p>n<p style="background-color:transparent;color:#424242;text-align:left;">n 直接了当的企业面试题n</p>n<p style="background-color:transparent;color:#424242;text-align:left;">n 抽丝剥茧n</p>n<p style="background-color:transparent;color:#424242;text-align:left;">n 系统学习数据结构与算法n</p>n<p style="background-color:transparent;color:#424242;text-align:left;">n 解决编程最基本的问题n</p>n<br />
非排序换乘算法
问题描述:已知站点,线路,线路-站点数据,求指定点之间的: 1、直达线路 2、一次换乘线路 3、两次换乘线路
双向链表(非循环)排序
双向链表的操作问题 Description 建立一个长度为n的带头结点的双向链表,使得该链表中的数据元素递增有序排列。(必须使用双向链表完成,数据类型为整型。) Input 第一行:双向表的长度; 第二行:链表中的数据元素。 Output 输出双向链表中的数据元素的值。 Sample Input 1 2 3 10 2 4 6 3 5 8 10 21 12 9Sample
Mybatis,Order By排序问题
曾写过一篇博客,是接触了一段时间的mybatis开发总结的:《Mybatis,怀疑--使用--感悟》。又过去了一段时间,前不久和别人联调接口,遇到了mybatis的排序问题。这篇博客就来总结一下,在mybatis框架下,如何实现排序?     排序,是个很基础的需求。实现的时候只需要在查询语句后面加上order by 某个字段即可。在mybatis中,用工具可以帮助我们自动生成底层的一套东西,便
mybatis查询排序
select * from emp order by convert( **${value}** using gbk) 字符转换 排序用$ 接口 List selectBlog4(String name); 调用 List&lt; Blog&gt; blog = mapper.selectBlog4(“name”); ...
mybatis逆向工程文件排序
xxxExample.setOrderByClause(&quot;yyy&quot;); yyy为要排序的字段。
myBatis 动态生成排序问题。
假设有2个字段要排序。 分别为字段A ,字段B ,都可以ASC DESC rn假设有这样一个SQL 语句 rnSELECT * FROM XXX ORDER BY #a1 #b1rn参数传入 A DESC 结果运行没有排序,rn假设rnSELECT * FROM XXX ORDER BY $a1 $b1rn参数第一次运行传入rnA DESC 后面每次运行都变成了rnSELECT * FROM XXX ORDER BY A DESC 排序另外一个字段B的时候,实际上也就是在排序字段A的效果。。。rnrn定义了statementType="STATEMENT" 还是没有效果。。。rnrnrn
mybatis实现的数据库排序
今天用到了对数据库按照倒序进行输出。因为刚接触mybatis,所以对这方面还不是太了解,再网上搜了好长时间终于找到了一些有用的信息。 我的目标是这样的,数据库中的信息分为无效和有效,对数据库中的信息的有效值按照倒序进行输出,输出到表格中, 在网上看到了这样的语句,SELECT * FROM photo ORDER BY id DESC;于是我就直接拿过来用了,但是却出现了问题,因
Mybatis多字段排序
        从前学习Spring开发的时候写过一个Web系统,后端采用Spring+SpringMVC+MyBatis,前端使用BootStrap和LigerUI,业务数据采用LigerUI的LigerGrid进行展示,由于LigerGrid只能支持单字段排序,有些时候业务需要进行多字段排序,刚好也准备重新换一下前端界面效果和框架,最近刚好看了下EasyUI,发现EasyUI是可以支持多字段排...
求一条排序的语句。动态层级排序
想实现最后的排序结果,PID为上级的ID,这个层次不固定,是动态的,举例使用了3层。rn[code=SQL]rnCREATE TABLE #T(ID INT,N VARCHAR(10),PID INT)rnINSERT INTO #T VALUES(1,'A',NULL)rnINSERT INTO #T VALUES(2,'B',NULL)rnINSERT INTO #T VALUES(3,'C',NULL)rnINSERT INTO #T VALUES(4,'AA',1)rnINSERT INTO #T VALUES(5,'AB',1)rnINSERT INTO #T VALUES(6,'AC',1)rnINSERT INTO #T VALUES(7,'BA',2)rnINSERT INTO #T VALUES(8,'BB',2)rnINSERT INTO #T VALUES(9,'BC',2)rnINSERT INTO #T VALUES(10,'CA',3)rnINSERT INTO #T VALUES (11,'AAA',4)rn--想实现的排序结果rnArnAArnAAArnABrnACrnBrnBArnBBrnBCrnCrnCArn[/code]
JAVASCRIPT动态排序
请问有什么方法可以实现一个表格数据的动态排序,如:rn1rn3rn5rn2rn10rn4rn排序后:rn10rn5rn4rn3rn2rn1
表格动态排序
相信很多人需要,我刚注册的,以前只看不发,关见是我现在有个问题大家帮帮忙rnrnhttp://expert.csdn.net/Expert/topic/2780/2780813.xml?temp=6.069362E-03rnrn急 我要实现一样功能必须用到上面的问题解决方法,做完了给大家份rnrnrnrn rn 数据重排rn rnrnrnrn rnrn rn rn rn rn rnrn rn rn rn 序号rn 中文测试rn 数字rn 字母rn 日期测试rn rn rnrn rn 01rn 测试rn 2rn arn 2001-02-00 rn rn rn 02 rn 真的测试吗rn 15 rn brn 2001 rn rn rn 03 rn 不要测试了rn 10 rn crn 2000-07-00 rn rn rn 04 rn 测试吧rn 15 rn drn 2000-01-00 rn rn rn 05 rn 明天在测rn 9 rn ern 1997-11-00 rn rn rn 06 rn 测啥呀,rn 0 rn frn 1997 rn rn rn 07 rn 我不干,你自己测吧rn 0 rn grn 1997 rn rn rn 08 rn 把根留住呀rn 0 rn hrn 1997 rn rn rn 09 rn 留天头呀rn 0 rn irn 1996-03-00 rn rnrn rnrn
sql server 动态排序
在开发中经常遇到动态排序的问题,需要用户在前台选择根据某一列来排序,针对这种问题常见的解决方法是,在数据库查询的时候动态拼sql语句,但是这种方法太过于麻烦,以后维护、修改困难很大,切性能不高。个人推荐使用case when 动态排序。这样的话,代码简单易懂,好维护,且性能高。具体代码如下: CREATE TABLE #TMP ( row int, id nv...
动态初始化排序链表
[code=&quot;c&quot;] #include &quot;stdio.h&quot; #include &quot;stdlib.h&quot; typedef int DataType; /*编一C程序,它能读入集合A的一串整数(以-9999为结束标记,-9999不算在内)和集合B的一串整数(以-9999为结束标记), 计算出A与B的交集,并以由小到大的次序输出A与B的交集中的所有整数 (输入整数时,相邻的两个用空格隔开。为...
sql动态排序问题
rnTab1:rn AA BB CC DDrn f1 e1 e2 e3rn f2 r1 r2 r3rn f3 h1 h2 h3rnrnTab1:rn XH AA BB CC DDrn 1 f1 e1 e2 e3rn 2 f2 r1 r2 r3rn 3 f3 h1 h2 h3rnrnTab1:rn XH AA BB CC DDrn 1 f1 e1 e2 e3rn 2 f3 h1 h2 h3rnrn
LINQ中的动态排序
我底层使用LINQ返回的泛型集合,List a;rn在BLL层中,通过 List b=a.OrderBy(p=>p.属性A).ToList(); 就可以得到根据属性A进行排序的集合b;rnrn但现在我需要根据页面传来的 属性(字符串) 进行动态的排序,该怎么写?rn例如 rnGetGV(string A)rnrn // 调用底层得到List arn List a=.......rn List b=a.a.OrderBy(p=>p.???????).ToList(); <---------------这行该怎么处理?我开始这样的p=>p.GetType().GetProperty(A));但好像不行rn retrun brnrnrn在排序哪行中 怎么通过 string A 使集合根据相应的属性A 进行排序?rn望各路大侠赐教。。。。。小弟先谢了rn
mysql 存储过程 动态排序
//参数 set @sidx=sx;/排序名称/ set @sord=sd;/排序方式/ 动态排序 if @sord=“desc” then CASE @sidx WHEN ‘zj’ THEN select * from ywtjb ORDER BY zj DESC; WHEN ‘jj’ THEN select * from ywtjb ORDER BY jj DESC; WHEN ‘ys’ ...
关于动态排序问题
public static IQueryable OrderBy(this IQueryable source, string orderByProperty,rnbool desc) where T : classrn rn //判断升序降序rn string command = desc ? "OrderByDescending" : "OrderBy";rn //获取t的属性rn var type = typeof(T);rn var property = type.GetProperty(orderByProperty);rn var parameter = Expression.Parameter(type, "p");rn var propertyAccess = Expression.MakeMemberAccess(parameter, property);rn var orderByExpression = Expression.Lambda(propertyAccess, parameter);rn var resultExpression = Expression.Call(typeof(Queryable), command, new Type[] type, property.PropertyType , source.Expression, Expression.Quote(orderByExpression));rn return source.Provider.CreateQuery(resultExpression);rn rnrn通过这个方法可以自动的建立本表的查询。rn会根据传来的string orderByProperty自动生成p=>p.orderByPropertyrnrn这里我传入表userinfo.表字段传什么值才可以调外键的值rn比如两个表。一个是userinfo 别一个表是deprn表关系是1对多 rn我想他生成的是p=>p.dep.Name
Linq For List 动态排序
有一个List集合,现在需要根据传递进来的 字段 和 排序方式(asc 还是 desc)进行排序。应该如何实现。rn字段是未知的,排序方式 也是未知的。rn[code=csharp]rnlist.OrderBy(a=>a.AllMemberCount)rn[/code]rn这种方法可以实现,但是排序字段是已知的,但是这样去写的话,需要大量的if判断,如何动态进行排序呢?
sql2005分页+动态排序
@PageSize FLOAT, rn@TargetPage SMALLINT,rn@Sort varchar(50) --排序条件rnASrnBEGINrnWITH newflightrnasrn( rnselect CEILING((ROW_NUMBER() OVER (ORDER BY flightid ASC))/@PageSize) AS [PageNumber],flightid from flight rn)rnSELECT * FROM newflight WHERE PageNumber = @TargetpagernrnENDrn------上面这段存储过程是没有排序功能的,这排序功能要怎么加。rn在以上存储过程中改。
相关热词 c# 线程结束时执行 c# kb mb 图片 c# 替换第几位字符 c#项目决定成败 c# 与matlab c# xml缩进 c#传感器基础 c#操作wps c# md5使用方法 c# 引用父窗口的组件