当前位置: 首页 > news >正文

编程语言到mysql ‘\‘到数量关系

在 MySQL 的模糊查询中,反斜杠 \ 的转义规则需要根据 转义层级 和 SQL 模式 来确定。以下是详细说明及示例:


一、默认模式下(未启用 NO_BACKSLASH_ESCAPES

1. 规则说明
  • 反斜杠转义\ 是 MySQL 的默认转义字符。

  • 转义层级

    1. 编程语言层转义(如 Java、Python、Go):字符串中的 \ 需要转义为 \\

    2. MySQL 层转义:传递到 SQL 中的 \\ 会被解释为单个 \

2. 示例场景
实际目标字符编程语言中的字符串最终 SQL 中的模式匹配的文本
单个 \"a\\\\b"a\\ba\b
两个 \\"a\\\\\\\\b"a\\\\ba\\b
匹配 \de"%\\\\de%"%\\de%abc\de 或 \de123

二、启用 NO_BACKSLASH_ESCAPES 模式

1. 规则说明
  • 禁用反斜杠转义\ 不作为转义字符,直接视为普通字符。

  • 转义方式:需使用其他转义符(如 ESCAPE '$' 自定义转义符)。

2. 示例场景
实际目标字符SQL 模式(自定义转义符)匹配的文本
单个 \LIKE 'a$%b' ESCAPE '$'a%b
匹配 \deLIKE '%\\de%'(直接写 \\de

三、关键总结

1. 默认模式下的反斜杠数量规则
目标字符编程语言中的字符串SQL 模式说明
\"\\\\"\\两层转义(代码层 + SQL层)
\\"\\\\\\\\"\\\\四个反斜杠变为两个
2. 常见误区
  • 误用单层转义:直接写 LIKE 'a\b',实际匹配的是 a b\b 被转义为退格符)。

  • 忽略编程语言转义:在代码中拼接字符串时未正确处理 \

3. 验证工具
  • 使用 HEX() 函数查看实际存储的二进制数据:

    SELECT HEX(word) FROM table WHERE ...;
    • \ 的 Hex 值为 5C


四、实战案例

场景1:查询文件名中的反斜杠
-- 目标:匹配 "C:\Program Files\MySQL\"
-- 正确写法(默认模式)
SELECT * FROM files 
WHERE path LIKE 'C:\\\\Program Files\\\\MySQL\\\\%';
场景2:查询包含 \n 的文本

-- 错误写法(匹配换行符) SELECT * FROM logs WHERE content LIKE '%\\n%'; -- 正确写法(匹配字面量 "\n") SELECT * FROM logs WHERE content LIKE '%\\\\n%';


五、转义规则总结

场景默认模式NO_BACKSLASH_ESCAPES 模式
匹配单个 \LIKE '\\\\'LIKE '\\'
匹配 \deLIKE '\\\\de%'LIKE '\\de%'
自定义转义符(如 $无需使用LIKE 'a$%b' ESCAPE '$'

通过理解转义层级和 SQL 模式,可精准控制模糊查询中的反斜杠匹配逻辑。

相关文章:

  • c++模版进阶
  • 11.第二阶段x64游戏实战-框架代码细节优化
  • mysql按条件三表并联查询
  • C语言进阶之自定义类型:结构体,枚举,联合
  • 关于TD算法的笔记【时间差分】
  • 小程序接口使用时,HttpOnly cookie 中的 sameSite 设置什么最合适
  • Redis入门(Java中操作Redis)
  • JavaWeb 课堂笔记 —— 11 MySQL 多表设计
  • HashMap为什么从java8的时候从头插变为尾插了
  • 利用代理 IP 突破反爬限制,实现跨境电商数据高效爬取
  • C++: Initialization and References to const 初始化和常引用
  • 数字ic后端设计从入门到精通(含fusion compiler, tcl教学)
  • C语言自定义类型详解一:结构体(内存对齐)
  • 数据结构(六)——红黑树及模拟实现
  • Linux系统编程 day2
  • 4月15日星期二今日早报简报微语报早读
  • Etcd 推荐配置(生产环境)
  • 路由重定向:redirect
  • PowerBI 度量值分组文件夹管理
  • Python之机器学习入门
  • 本周看啥|孤独的美食家,蛮好的人生
  • 北京一季度GDP为12159.9亿元,同比增长5.5%
  • 蚌埠市委常委、宣传部部长郭鹏履新安徽省委宣传部副部长
  • 专家:晚期肿瘤不再“无药可医”,早筛早诊早治可提高生存率
  • 国防部:穷兵黩武不会让美国再次伟大
  • 国家主席习近平出席马来西亚最高元首易卜拉欣举行的欢迎仪式