zl程序教程

您现在的位置是:首页 >  后端

当前栏目

Mybatis学习记录(六)--开发中的小问题

mybatis学习开发 -- 记录 问题
2023-09-11 14:20:42 时间

近期開始做项目,期间遇到一些小问题,开此贴记录一下

1.关于order by

今天写一个sql查询语句,用了order by可是一直没效果,后来才发现用了#{}取值,mybatis使用这个的话对于String类型会自己主动加上引號,导致sql无效,正确做法用$取代#

    SELECT * FROM cum_user
        <where>
            <if test="search != null">
                (username LIKE #{search} ) or (nickname LIKE #{search}) OR (stunum LIKE #{search})
            </if>
        </where>
        <if test="ordername != null">
--             对于排序使用${}符号
            ORDER BY ${ordername} ${order}
        </if>

2.关于三张表查询去重问题

一张主表problem,关联着catelog和cum_user两张表的主键,以下是正确的查询方法,不然会出现非常多反复结果

SELECT problem.id,pro_name,cate_id,catelog.cate_name,pro_pass,pro_sub,problem.credits,start_time,user_id,cum_user.username
FROM problem
  LEFT JOIN cum_user on problem.user_id = cum_user.id
  LEFT JOIN catelog on problem.cate_id = catelog.id
WHERE (problem.pro_name LIKE '%1%' ) or (problem.id LIKE '%1%' ) OR (catelog.cate_name LIKE '%1%')
;