MySql LIKE查找带反斜线“\”的记录

使用 \\ 还是 \ 看你如何的定义字符串的。其实只有两处转义:PHP 中 和 MySQL 中。

PHP 中 如果你用双引号”" 定义字符串, 那么这里有一次转义。如果用单引号就不会转义。

$sql = “SELECT * FROM table WHERE col LIKE ‘%a\\%’ “;

这样实际上经过转义发给 MySQL 的是

SELECT * FROM table WHERE col LIKE ‘%a\%’;

用单引号则不会转义(除了单引号,当然变量也不会展开):

$sql = ‘SELECT * FROM table WHERE col LIKE ’%a\%’ ‘;

发给 MySQL 的也是

SELECT * FROM table WHERE col LIKE ‘%a\%’;

时间: 2024-12-22 20:09:11

MySql LIKE查找带反斜线“\”的记录的相关文章

MySql正则 查找筛选字段为中文的记录

在MySql中使用正则可以达到事半功倍的效果,在php,asp中都有正则表达式这一说那么mysql是怎么样的呢,下面我拿一个实例 查找筛选字段为中文的记录sql语句. 如,简单看示例,使用mysql筛选出某字段中文的记录:  代码如下 复制代码 select * from table where not name regexp '^[1-9A-Za-z]'; 实例 数据库例: entry        name         cost -----------------------------

JDOM使用XPath查找带NameSpace的节点

对于XML文件中不带命名空间(NameSpace) 的节点,如 <blog_Content> 用 JDOM 的 XPath 来搜索这个节点时可用下面之中任一代码: ① List<Element> elements = XPath.selectNodes(document,"//blog_Content"); ② XPath xpath = XPath.newInstance("//blog_Content"); List<Element

c语言问题-理性讨论,反斜线加八进制或十六进制,算转义字符吗

问题描述 理性讨论,反斜线加八进制或十六进制,算转义字符吗 百度百科:所有的ASCII码都可以用""加数字(一般是8进制数字)来表示. 这说明反斜线加八/十六进制只是一种表示字符常量的方式,他们严格意义上不能算作转义字符? 解决方案 什么是二进制,十六进制,八进制,他们都是怎么算的? 解决方案二: 和' ' 等都一样,都是转义字符.

cursor-android查找数据库中是否有记录

问题描述 android查找数据库中是否有记录 在sqlite中查找是否有学号为123的记录,如果没有的话下面怎么来判断 Cursor result = db.rawQuery("SELECT 学号 FROM grade WHERE 学号 = 123", null); if(???){ Toast.makeText(TheacherView.this, "学号不存在", Toast.LENGTH_SHORT).show(); 大家看看,问号这里该写啥. 解决方案 用

mysql 多个事务更新同一条记录产生死锁

问题描述 mysql 多个事务更新同一条记录产生死锁 以下是用show innodb status 查看的死锁信息,都是通过主键索引userId去更新记录,没有其他索引的影响,不应该会产生死锁啊,请大神帮忙分析下原因. 表索引如下 (.... PRIMARY KEY (userId), UNIQUE KEY userId_UNIQUE (userId), UNIQUE KEY userName_UNIQUE USING BTREE (userName) ) ENGINE=InnoDB AUTO_

mapreduce-MapReduce 查询mysql表中的数据,打印记录数,并转储回mysql表

问题描述 MapReduce 查询mysql表中的数据,打印记录数,并转储回mysql表 http://www.hadoop1234.com/?p=230 解决方案 package com.laoxiao.mr02; import java.io.DataInput; import java.io.DataOutput; import java.io.IOException; import java.sql.PreparedStatement; import java.sql.ResultSet

jdbc:mysql:///中为什么是三道斜线?

问题描述 jdbc:mysql:///中为什么是三道斜线? jdbc:mysql://后面一般是端口号的啊,现在第三道斜线是什么? 解决方案 第三道线是多加的,两道线就ok啦 解决方案二: mysql JDBC 解决方案三: 表示是本地的,三道斜线就不用写localhost:3306,直接在后面写数据库的名称就可以了

Navicat for MySQL如何创建带参数的存储过程

问题描述 Navicat for MySQL如何创建带参数的存储过程?要通过界面创建,输入参数和输出参数应该怎样书写? 问题补充:飞雪无情 写道 解决方案 回答的不能上传截图..你能看到图就更好明白了.运行图形化是直接点上面面的:"运行",然后输入参数,多个参数逗号分割!解决方案二:呵呵.我就是看到了.嗯,输入参数的格式是IN param1 INTEGER(11), IN param2 INTEGER(11)这样的..调用的时候使用 call 存储过程(参数1,参数2);解决方案三:右

mysql中set @rowNum=0实现查询记录的行号

这个问题源于SF上的一个问题: 字段 id,shares // 分享次数 记录 1, 2 2, 0 3, 1 4, 0, 5, 1 需求 计算某条记录的分享排行 假设计算id 2 的分享排行 则是4 sql 能算出某条记录的 分享排行吗?   SQLServer提供了ROW_NUMBER()函数可以实现. 但是mysql没有提供类似的函数,网上查了点资料,可以利用预定义变量解决. 实验数据: mysql有点麻烦,给一下思路,数据表如下: mysql没有像sql server一样提供记录行数的函数