IDEA中使用mybatis 两条几乎一样的语句查询结果却不一样?

NULL
  • 3
新手上路,请多包涵

题目描述

IDEA中使用mybatis 两条几乎一样的语句查询结果却不一样

题目来源及自己的思路

相关代码

    select
    act.id,
    act.name,
    act.startDate,
    act.endDate,
    u.name as owner
    from tbl_activity act
    join tbl_user u
    on act.owner = u.id
    where act.name like '%'#{aname}'%' and act.id in (
    select activityId
    FROM tbl_clue_activity_relation
    where clueId = #{clueId})

这一条语句查询出来的结果是
Preparing: select act.id, act.name, act.startDate, act.endDate, u.name as owner from tbl_activity act join tbl_user u on act.owner = u.id where act.name like '%'?'%' and act.id in ( select activityId from tbl_clue_activity_relation where clueId = ? )

Parameters: 我不信(String), 3e402ac858f3462b9eec4364c0550db2(String)

Total: 0

然后另一条语句

    select
    a.id,
    a.name,
    a.startDate,
    a.endDate,
    u.name as owner
    from tbl_activity a
    join tbl_user u
    on a.owner=u.id
    where a.name like '%' #{aname} '%' and a.id in(
    select activityId
    from tbl_clue_activity_relation
    where clueId=#{clueId}
    )

查询出来的结果却是
Preparing: select a.id, a.name, a.startDate, a.endDate, u.name as owner from tbl_activity a join tbl_user u on a.owner=u.id where a.name like '%' ? '%' and a.id in ( select activityId from tbl_clue_activity_relation where clueId = ? )

Parameters: 我不信(String), 3e402ac858f3462b9eec4364c0550db2(String)

Total: 3

你期待的结果是什么?实际看到的错误信息又是什么?

我认为这两条语句只有tbl_activity 的别名有区别,其他都一模一样,可是查询出来的结果却不同,求大神解答,用的数据库是mysql5.7

回复
阅读 532
1 个回答

仔细看下like条件,应该是%空格引起的吧!
mybatis中的%不是那样拼接的,要不你收到拼接参数传入,要不直接使用concat函数
惊讶like 竟然可以跟多个值。。。

宣传栏