美文网首页
mysql模糊查询遇到的问题

mysql模糊查询遇到的问题

作者: 墨色尘埃 | 来源:发表于2018-01-24 14:41 被阅读126次

1、模糊查询与分页查询时传入的页码
① 模糊查询的时候,不管是第一页还是第二第三页,页码都应该传1
Limit (page-1)×rows,rows
② 只有当点击下图中页码2的时候才会传入2

image.png

2、like里的特殊符号%
做项目时,使用如下模糊查询,能返回数据但是控制台莫名其妙报错,虽然不影响查询结果但是精益求精,后来使用LIKE CONCAT不报错了。可能因为%是个特殊符号

控制台报错,但是能查询到数据。另外在<>标签内不能有--,否则查询不到数据
<if test="enterpriseName!=null">
--   AND ENTERPRISE_NAME LIKE '%' #{enterpriseName,jdbcType=VARCHAR} '%'
     AND ENTERPRISE_NAME LIKE '%' #{enterpriseName,jdbcType=VARCHAR} '%'
</if>

其他错误方案:对于mysql数据库
LIKE '%#{enterpriseName}%'
LIKE "%"||#{enterpriseName}||"%"
LIKE '%'+#{enterpriseName}+'%'

正确做法:对于mysql数据库

// ${}解析过来的参数值不带单引号,#{}解析传过来参数带单引号。
LIKE '%${enterpriseName}%' 此方法有注入风险

//CONCAT用来拼接查询的字符串
LIKE CONCAT(CONCAT('%',#{enterpriseName}), '%')
LIKE CONCAT('%', #{enterpriseName,jdbcType=VARCHAR}, '%')

3、这样做的目的主要是因为在 XML 元素中,"<" 和 "&" 是非法的。"<" 会产生错误,因为解析器会把该字符解释为新元素的开始。"&" 也会产生错误,因为解析器会把该字符解释为字符实体的开始。而sql语句或者脚本语句中可能会存在 "<" 或 "&" 字符。为了避免错误,可以将sql语句定义为 CDATA。CDATA 部分中的所有内容都会被解析器忽略。

<![CDATA[ 
    select * from t_train_record t where t.activity_id=#{activityId} 
]]>        

Mybatis各种模糊查询
MySql 模糊查询

相关文章

  • mysql模糊查询遇到的问题

    1、模糊查询与分页查询时传入的页码① 模糊查询的时候,不管是第一页还是第二第三页,页码都应该传1Limit (pa...

  • MySQL []通配符

    mysql [ ]通配符在使用过程中会遇到无法模糊查询,查询结果结果为empty set。 首先: [list]:...

  • MySQL索引相关原则

    索引创建原则 模糊查询请最好遵守最左前缀查询原则。 a.mysql会一直向右匹配直到遇到范围查询(>、<、betw...

  • MYSQL模糊查询

    1.公式select * from 表名 where 字段 Like 条件2.%可以匹配0个或者多个字符eg:my...

  • mySQL——模糊查询

    正则表达式在模式开始处使用“^”或在模式的结尾用“$”。 为了找出以“三”开头的名字,使用“^”匹配名字的开始。S...

  • mysql 模糊查询

    mysql 中模糊查询有两种,一种LIKE, NOT LIKE 。另一种就是匹配 REGECXP, NOT REG...

  • MySQL模糊查询

    原文链接http://zhhll.icu/2020/%E6%95%B0%E6%8D%AE%E5%BA%93/%E5...

  • mysql模糊查询 INSTR 代替 LIKE

    mysql模糊查询 INSTR 代替 LIKE

  • 记一个 MySQL 版本导致的问题

    问题 线上遇到MYSQL GROUP By 查询出现 only_full_group_by 的问题,错误提示是: ...

  • SQL优化文集

    [MYSQL]MySql 模糊查询LIKE优化(部分适用)[https://www.imooc.com/artic...

网友评论

      本文标题:mysql模糊查询遇到的问题

      本文链接:https://www.haomeiwen.com/subject/ghqanxtx.html