mybatis执行select子查询分页报错
select
    adr.modifiedname,
    adr.modifiedon,
    adr.comment_tag,
    adr.post_desc,
    adr.qualifications,
    (
    SELECT
                GROUP_CONCAT(r.user_name)
                FROM
                post_recruiter_related r
                WHERE
                r.post_id =  ah.post_id
                AND r.isdeleted = 0
    ) AS recruitPersons
    from ad_headhunter_related ah LEFT JOIN ad_release_record adr ON ah.post_id = adr.post_id
    where adr.isdeleted=0
   HAVING recruitPersons like '%杰%'
    ORDER by ah.create_time DESC

我有一条sql语句,其中select里面有一个子句关联另一张表,这条sql单独执行没问题,但是配合PageHelper分页就报错,提示“ SELECT count(0) FROM ad_headhunter_related ah LEFT JOIN ad_release_record adr ON ah.post_id = adr.post_id WHERE adr.isdeleted = 0 AND ah.is_deleted = 0 AND ah.hunter_id = 83 AND adr.post_nameE '%杰%' HAVING recruitPerons LIKE CONCAT('
%', ?, '%')
提示找不到recruitPersons这个列,这是什么原因呢?

0

6个回答

SELECT count(0) FROM ad_headhunter_related ah LEFT JOIN ad_release_record adr ON ah.post_id = adr.post_id WHERE adr.isdeleted = 0 AND ah.is_deleted = 0 AND ah.hunter_id = 83 AND adr.post_nameE '%杰%' HAVING recruitPerons LIKE CONCAT('
%', ?, '%')

这个sql肯定是会提示找不到recruitPersons这个列,这句sql应该是分页时查询数据总数的吧?你可以试试这样改改,因为你查询数据总数时,并没有把recruitPersons这列查询出来,这个是子查询出来的临时字段并不是数据库字段

     select count(*) from (SELECT  (SELECT GROUP_CONCAT(r.user_name) FROM post_recruiter_related r WHERE r.post_id =  ah.post_id AND r.isdeleted = 0) AS recruitPersons FROM ad_headhunter_related ah LEFT JOIN ad_release_record adr ON ah.post_id = adr.post_id WHERE adr.isdeleted = 0 

AND ah.is_deleted = 0 AND ah.hunter_id = 83 AND adr.post_nameE '%杰%' HAVING recruitPerons LIKE CONCAT('%', ?, '%')) as tab1

1
weixin_38296812
flappyfish 是的,我在外面再套了一层就解决了
一年多之前 回复

就是他在执行count时没有查询我这个子句,但是我这个子句又是后面的过滤条件

0

sql语句执行顺序是先having 再select 当然没有这个列啊!

0

一个语句的执行顺序 from-- on---join--where--group by-- with --having-- select --distinnct --order by --limit 楼主看看 楼主的语句适合这个顺序吗? 我看不适合

0

where 条件 放在最后边

0

select
ah.post_id,
adr.modifiedname,
adr.modifiedon,
adr.comment_tag,
adr.post_desc,
adr.qualifications

(
SELECT
            GROUP_CONCAT(r.user_name)
            FROM
            post_recruiter_related r
            WHERE
            r.post_id =  ah.post_id
            AND r.isdeleted = 0
) AS recruitPersons
from ad_headhunter_related ah LEFT JOIN ad_release_record adr ON ah.post_id = adr.post_id
where adr.isdeleted=0

and recruitPersons like '%杰%'
ORDER by ah.create_time DESC

    感觉像子查询的条件没满足  你试试
0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
mybatis批量修改报错子查询返回多行,但是在客户端执行却正常执行。
由于项目需要写了一个定时任务,用的kdb数据库(老大说这数据库写脚本不方便)。问题来了。下面sql  在客户端是可以正常执行的。     但是在java后台报错,用的mybatis。a.stop_time是number类型,start_date和end_date是timestamp类型。    求大神指点!...
mysql查询select部分进行子查询-小结
sql模版:select *,(select xx from tableName) from tableName子查询使用要注意的:只能返回一个值一定要使用别名区别表,除非使用的表属性都不重名再说个最近遇到的问题sql:select abc.id, (select c.collect_supervisor_id from (select bx.id from t_bills bx where bx...
mybatis 构造查询和联合子查询问题
1.在关联查询 - 子查询的时候rn   rnrnrn         rn         rn         rn         rn         rn          column="userid" select="SelectUserByID" >rn           rn         rn     rn      rn        resultType="User">
mybatis的关联嵌套查询--分页详解
问题描述n1. mybatis嵌套查询后,分页混乱:mybatis通过查询结果之后折叠结果集把数据放在了集合里,这就导致总条数的混乱.而第一种的方式是分两次查询,就不会有分页的问题,所以解决方案就是把你的collection写成第一种的方式n2. 折叠结果集映射不上数据n1. 数据库n-- 区域表:nCREATE TABLE `area` (n `id` bigint(11) NOT NULL...
MyBatis-高级查询
假如我们有如下3张表nusers表nn+----------+-------------+------+-----+---------+----------------+n| Field | Type | Null | Key | Default | Extra |n+----------+-------------+------+-----+-----
【Oracle】mybatis Oracle 分页并查询出现的问题
bug:rn使用参数绑定的方式进行查询,查询语句如下:rnrn@Select("SELECT * FROM   (  rnSELECT A.*, ROWNUM rn   FROM (rnSELECT  *  FROM xxxxxtable   order by #{parameter} desc )  A   "rn+ "WHERE ROWNUM = #{start} ")rnrnrnrn但是测试
mybatis pagehelper分页查询时候报错
今天再做开发的时候遇到了mybatis Pagehelper   分页查询的错误。The error occurred while handling results ### SQL: SELECT count(*) FROM tb_pro_rating WHERErn pro_info_id = ? ### Cause: j,找了很久没有找到原因。rn             最后跟踪源代码,发现
Mybatis的insert into select命令未结束问题解决
Mybatis中使用insert into select命令,错误如下:Exception in thread "main" org.springframework.jdbc.BadSqlGrammarException: n### Error updating database. Cause: java.sql.SQLSyntaxErrorException: ORA-00933: SQL 命...
通用分页存储过程,支持子查询或联表查询
n代码rnrnCode highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->/****** 对象: StoredProcedure [dbo].[p_generalTablePage] 脚本日期: 12/30/2009 13:25:02 ******/...
子查询,分页查询
From 加上子查询rn查出高于平均工资的所有员工信息rnSelect deptno,avg(sal ) anysal  from enp ;查询出了平均工资rnSelect a1.deptno, a1.ename, a2.anysal from emp a1,(Select deptno,avg(sal ) anysal  from emp group by deptno)a2 where a1
关于mybatis自定义分页器中getCountSql方法的改进
问题场景nnn在使用3.2.3版本(14年的时候)com.github.pagehelper的PageHelper类时,源码用的是:nnnprivate String getCountSql(String sql) {n return "select count(0) from (" + sql + ") tmp_count";n}nnn因为公司不是直接用了这个jar包,而是拿着源码改进自己...
MyBatis(六) sql片段定义、级联查询、嵌套查询
SQL片段的定义将公用的SQL片段提取出来减少工作量 <sql id="studentColumns">n stu_id,stu_Age,stu_Sex,stu_Namen </sql>n <select id="queryStudentInfo" resultType="student" parameterType="map">n
MyBatis的mapper层,简单的分页查询sql语句报错ORA-00923: 未找到要求的 FROM 关键字
<!-- 取得所有租赁合同列表 有分页 -->n <select id="selectListByAllWithPage" resultMap="RentResultMap">n select * from (select *,ROWNUM rn from RENT where ROWNUM <=#{end}) where rn &amp...
子查询分页快在哪里
SELECT * FROM table WHERE id >= (SELECT id FROM table LIMIT 1000000, 1) LIMIT 10; 对于大数据量的查询,我们的分页代码一般会这样查询,看到子查询了没,他只查询一个id,而对于innodb引擎来说,主键索引和数据是分开的,所以这里并不需要回表,所以查询就会变快。但是这种优化是对于简单的一个大数量级别的表,
mybitis 利用association或collection传递多参数子查询
有时候我们在查询数据库时,需要以查询结果为查询条件进行关联查询。在mybatis 中通过 association 标签(一对一查询,collection 一对多 查询) 实现延迟加载子查询 <resultMap id="xxxMap" type="xxxx.bean.xxx" extends="zzzzMap">n <association property="destName"
MySQL嵌套子查询报错解决方法
n n n   在MySQL中,写SQL语句的时候,遇到You can't specify target table '表名' for update in FROM clause这样的错误,它的意思是说,不能先select出同一表中的某些值,再update这个表(在同一语句中),即不能依据某字段值做判断再来更新某字段的值。实例如下语句:update t_user se...
mybatis的高级映射 (resultmap标签,column属性传多个参数,,select子查询自身)
mybatis的高级映射(包括 resultmap标签,column属性传多个参数,select子查询自身)rn重点看代码里的注释的解释rnresultmap子查询时,传多个参数时的格式:column="{自定义参数名=字段名,…}"rn对方用#{参数名}接受参数值,且 parameterType=…HashMap --&gt;rn@Results对应/标签rn@Result对应标签rn@Many对应子标签rn...
mybatis子查询
如上:nn这种方式是把对关联表的查询单独拎出来, association的属性有property:查询结果存放的属性,javaType:查询结果返回的类型,select:拎出来的查询语句,而column:相当于是把参数赋给查询语句。nn我在宁外的地方看到别人把查询语句放在一起,查询结果单独处理的nn链接:https://blog.csdn.net/qq_36544760/article...
mysql in 子查询无效问题
1. 无效rnrnselect * from term_inforn    where 1 = 1 rnANDrncompany_no = 2rnand term_no not in  ( select GROUP_CONCAT(term_no)   from p_info where company_no = 2 and id != 1  )rnrnrnrn2. 有效rnrnselect * f
ORA-00918:未明确定义列 mybatis调用分页出错
填坑时候发现的,调用mybatis的分页,报错:未明确定义列nnnnsql复制出来完全可以,但在框架里就报错。nn以为是有遗漏哪个没起别名,但是给每个都起了别名后,还是报这个错。nnnn因为实体类是别人写的,有两个属性都叫name,估计错在这,一开始不想动的。最后直接改了一个字段名,就好了。
关于mybatis中<collection>不执行的其中一种情况
问题nn我在mapper中写&amp;lt;collection/&amp;gt; 作联合查询的时候,返回的结果里没有联合查询的数据。使用debug在控制台把sql语句打印出来后,发现根本没有执行联合查询对应的sql语句。nnnn代码nn先试result的代码nn&amp;lt;resultMap type=&quot;com.mytest.domain.ActivityRecord&quot; id=&quot;baseactivityRecord...
MyBatis中添加对exists子查询的支持
2016-12-21 更新rn已经加入GitHub托管: [url]https://github.com/leitelyaya/mybatis-3[/url] 注意3.2.x rn另外已修复ForEach污染全局变量的问题rn实际使用效果嘛,[b]临时表数据越少越好[/b],如果不少,请放弃此优化rn特感谢这篇博文讲解参数使用:[url]http://blog.csdn.net/isea533/a...
mybatis +sqlserver分页语句中有top导致报错@P0附近语法错误
解决办法,top 后加括号 如:select top (#{pageSize})
Mybatis 中sql 使用in(#{item})无法查询解决办法
1、使用${ietm} ,参数不参与预编译。n    这虽然简便,但是容易造成sql注入,所以不提倡使用。n2、使用foreach语法n 其支持List、Array以及Mapn例如:nstatus innn#{item}
MyBatis 中使用 Collection 嵌套查询
当使用 MyBatis 进行查询的时候如果一个 JavaBean 中包含另一个 JavaBean 或者 Collection 时,可以通过 MyBatis 的嵌套查询来获取需要的结果; n 以下以用户登录时的角色和菜单直接的关系为例使用嵌套查询nJavaBeannRoleModelnpublic class RoleModel {n private Integer id;n priva
mybatis xml中实现一对多查询时, 子查询带多个参数
1、mapper文件中:nnnList&lt;Object&gt; getXXXXX(@Param("taskId")String taskId,@Param("taskType")String taskType);n nn2、xml文件中nnn&lt;select id="" resultMap="" &gt;n n selecttst.id subTaskId,......n n ...
MySQL中嵌套子查询删除出错解决方案
MySQL中嵌套子查询删除出错解决方案
MyBatis分页插件pageHelper踩坑
1.版本nnpageHelper插件4.0.0以后的版本支持自动识别使用的数据库,可以不用配置&lt;property name="dialect" value="mysql"/&gt;nn配置文件写成如下即可。nnn&lt;plugins&gt;n &lt;plugin interceptor="com.github.pagehelper.PageInterceptor"&gt;n ...
WITH AS 子查询
WITH AS短语,也叫做子查询部分(subquery factoring),是用来定义一个SQL片断,该SQL片断会被整个SQL语句所用到。rnrnrn1.with子句的返回结果存到用户的临时表空间中,只做一次查询,反复使用,提高效率。rnrnrnrnrn2.在同级select前有多个查询定义的时候,第1个用with,后面的不用with,并且用逗号隔开。rnrnrn3.前面的with子句定义的查
mybatis未明确定义列
select * from (这里能正确执行) tmp_tb where ROWNUM=1 rn数据库中的语句能正确执行,rn但是自动生成的语句mybatis不认识了rn这是因为“能正确执行的语句”中有空格rn数据库认识,mybatis不认识了rnrnrn不要写成 rn                select 字段名 rn                ,字段名rn             
mysql笔记五之分页、连接查询、自关联、子查询
1.-- 分页n    -- limit start, countn    -- 表示获取多少条数据n    -- start 默认值为0 可以省略n    -- 表示跳过多少条数据n    select * from students limit 5;nn    -- 跳过一条数据 向后获取5条n    select * from students limit 1, 5;nnn    第一页n ...
hql不能在distinct,group by结果集上使用count的问题,报语法错误
hql有如下两个限制:nnHQL(SQL)不支持select count(distinct x, y) from xx;nnHQL不支持select count(*) from (select distinct x, y from xx);nn即:HQL不支持from语句中的子查询。nnnnnPS:hql不能在distinct,group by结果集上使用count的问题 !
mybatis多个查询条件
 nn&amp;lt;!--随便下面参数的其中一个都可以查询--&amp;gt;nn&amp;lt;!-- &amp;lt;select id=&quot;selectBankInfo&quot; resultMap=&quot;BaseResultMap&quot; &amp;gt;nnSELECTnnbankHolderName,bankHolderStatus,bankAccountNum,bankName,branchName,branchAddressnnfrom ...
Spring 集成 tk.mybatis异常 反射报错
Spring 集成 tk.mybatis异常 反射报错n下面贴上报错的代码njava.lang.NoSuchMethodException:ntk.mybatis.mapper.provider.base.BaseSelectProvider.&amp;lt;init&amp;gt;()n at java.lang.Class.getConstructor0(Class.java:3082) ~...
如何用Mybatis逆向工程实现分页查询(更改生成的Example)
如何用Mybatis逆向工程实现分页查询n一个很简单的方法,如果要mysql实现分页查询的话,执行下述语句即可nnn select * from tablen limit (offset)5,(limit)10;nn其中,第一个参数offset为游标起点,第二个参数limit为一次所取的数据量.这个语句在数据库中极其简单,但由于mybatis的逆向工程将绝大多数的sql语句包装成方法...
mybatis Association标签 分两次sql查询时,参数传递问题
直接给个例子,该例子来自:http://www.cnblogs.com/xdp-gacl/p/4264440.html<!-- n37 方式二:嵌套查询:通过执行另外一个SQL映射语句来返回预期的复杂类型n38 SELECT * FROM class WHERE c_id=1;n39 SELECT * FROM teacher WHERE t_id=1 /
mybatis查询嵌套之参数传递
今天花了一下午时间发现了mybatis的一个用法,就是查询嵌套传参的时候会把集合中的参数给“”用掉”,所谓用掉,就是作为参数传递给嵌套查询的参数不会在返回结果集中显示。解决办法就是做两个参数命不同的名字,一个用作查询嵌套的传递,另外一个用作结果集的返回。rn上例子:rnn SELECTn BT.TERMINAL_SYS_NO as mtSysNo,n MCA.TERMINAL_NO AS
MyBatis 调用分页sql提示 未明确定义列
数据库用的是Oracle,Mybatis自动封装的分页,sql语句在PLSQL中执行没有问题,放在代码里面运行的时候就报错:未明确定义列。rnrnrn通过log打印的sql语句拷出来执行,发现嵌套上分页就会报错。rnrnrn问题原因:sql语句中有个列的别名重复,导致嵌套了分页后,数据库不能确定我们要的到底是哪个列,就会报未明确定义列。rnrnrnrnrn网上还有网友说的其他原因大家可以参考,比如
【Mybatis】子查询总结(一对多Collection),查询父对象时,也查询子对象;
一、需求比如,我们有两个对象,一个问答,一个评论,类似百度知道一样的东西;我们查询一个问答的时候,可以查看其下面的评论; n我在查询J_questionandanswer这张表的时候,需要查询j_comment这张表,并把j_comment这张表里的数据放到questionAndAnswer这个实体中;操作步骤如下:二、解决办法准备工作: n1、j_comment表的创建; n2、comment的实
Mybatis 递归子查询遇见的问题
在运用Springboot +springcloud+mybatis项目中,在菜单列表的三级查询中运用到mybatis递归子查询,然而在查询的时候,有好几次只执行了第一次查询,第二次子菜单不显示。rn因为一直想着这个问题,做梦想到了这个问题的关键rnrn rn   rn   rn   rn   rn   rn   rn   rn rn rn rn rn     SELECT strMenuId,
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 java学习之分页 web分页视频教程