0 0

MySQL使用Like查询换行符的问题10

最近遇到一个MySQL的问题,问题如下:
CREATE TABLE `authentication` (                                         
     `ID` bigint(20) NOT NULL AUTO_INCREMENT,                              
     `DEVUSERNAME` varchar(255) COLLATE utf8_bin DEFAULT NULL,             
     `DEVPASSWORD` varchar(255) COLLATE utf8_bin DEFAULT NULL,             
     `DEVROLENAME` varchar(255) COLLATE utf8_bin DEFAULT NULL,             
      PRIMARY KEY (`ID`),                                                   
      KEY `Idx_DEVROLENAME` (`DEVROLENAME`)                                     
 ) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8 COLLATE=utf8_bin ;

insert into authentication (ID,DEVUSERNAME,DEVPASSWORD,DEVROLENAME) values(8,'1.0','1.0','1.0');

update authentication set DEVROLENAME='1.0TR069\r\n' where id =8;

commit;


使用如下语句
select * from authentication where DEVROLENAME like "1.0TR069%";
不能查询出这条记录。

如果删除索引Idx_DEVROLENAME, 再查询则可以查出来。
不知道什么原因,望指点。


测试版本 MySQL 5.1.24 linux版




问题补充:
qqpedily 写道
USE pubs
GO
SELECT phone
FROM authors
WHERE phone NOT LIKE '415%'
ORDER BY au_lname
GO

注意 “” 和 ‘’的区别,在看看这篇文章http://blog.csdn.net/wei0527/archive/2009/04/17/4086131.aspx


在MySQL中 "" 和 ''是一样的,而且我换成''也同样查不出来。
我是想查出包含'\r\n'的记录,如果删除索引,是可以查出的,但是有索引则不行,求教为什么?

问题补充:谢谢 Ihavegotyou

虽然从bug描述上说和我的情况不相符,但已经很类似了。(只是我用的版本是5.1.24应该已经fix这个bug了)

暂时先按MySQL的bug处理。
2010年3月22日 17:10

2个答案 按时间排序 按投票排序

0 0

采纳的答案

2010年3月23日 13:07
0 0

USE pubs
GO
SELECT phone
FROM authors
WHERE phone NOT LIKE '415%'
ORDER BY au_lname
GO

注意 “” 和 ‘’的区别,在看看这篇文章http://blog.csdn.net/wei0527/archive/2009/04/17/4086131.aspx

2010年3月22日 17:22

相关推荐

    mysql针对字段中换行符\r\n进行查询和删除

    1、应用场景:mysql中某个数据字段包含换行符,导致前台解析json时报错  “Uncaught SyntaxError: Unexpected token in JSON at position 333”; 2、针对以上可将数据粘贴进notepad++查看,其中问题部分json如下所...

    MySql like模糊查询通配符使用详细介绍

    1. `.`字符:在正则表达式中,`.`匹配任何单个字符,但不包括换行符。 2. 字符类`[...]?`:这个构造可以匹配指定区间内的任意字符。例如,`[abc]`匹配"a"、"b"或"c",而`[0-9]`匹配任何数字。 3. `*`重复操作符:`...

    MySql基本查询、连接查询、子查询、正则表达查询讲解

    MySQL中是使用SELECT语句来查询数据的。在这一章中将讲解的内容包括。 1、查询语句的基本语法 2、在单表上查询数据 3、使用聚合函数查询数据 4、多表上联合查询 5、子查询 6、合并查询结果 7、为表和字段取别名 8、...

    mysql正则表达式 LIKE 通配符

    6. 任意字符匹配:使用“.”可以匹配除换行符之外的任意字符。若要匹配包括换行符在内的所有字符,可设置REGEXP的模式修饰符。 具体到MySQL的REGEXP和RLIKE操作符的用法,它们用来测试一个字符串是否符合某个正则...

    MySQL模糊查询语法[文].pdf

    - **"."**:匹配除换行符之外的任意字符。 - **"\d"**:匹配数字。 - **"\D"**:匹配非数字字符。 - **"[...]"**:字符集,匹配指定范围内的任意字符。 - **"[^...]"**:否定字符集,匹配不在指定范围内的任意...

    正则表达式MySQL参考文档

    - `.`:匹配任何单个字符,除了换行符。 - `*`:匹配前面的字符0次或无限次。 - `+`:匹配前面的字符1次或无限次。 - `?`:匹配前面的字符0次或1次。 - `{n}`:匹配前面的字符正好n次。 - `{n,}`:匹配前面的字符...

    mysql查询语句汇总.docx

    但需要注意的是,在实际应用中,应尽可能避免使用此类查询,因为这可能会导致性能问题,尤其是在处理大量数据时。 #### 四、带条件的查询 **语法**: ``` SELECT column1, column2 FROM table_name WHERE ...

    mysql命令大全很详细

    - 插入或更新数据时,字符串值不能跨越多行,否则换行符会被保存为数据的一部分。 - **添加管理员账户**: - 使用 `grant all on *.* to user@localhost identified by "password";` 创建新的管理员账号,并赋予...

    MySql培训日志_stu

    - 使用`mysqldump`命令导出数据,使用`mysql`命令导入数据。 #### 十九、数据库设计三范式 - **1.20 数据库设计的三范式** - **1.20.1 第一范式** - 每个列都是不可分割的基本数据项。 - **1.20.2 第二范式** ...

    mysql索引的设计和使用

    ### MySQL索引的设计与使用详解 #### 创建与删除索引 在MySQL中,索引的创建与删除是数据库性能调优的重要环节。通过创建索引,可以显著提升数据检索的速度,尤其是在大型数据库中,索引的合理设计可以极大缩短...

    mysql实战性能优化

    在MySQL中,使用`EXPLAIN`关键字可以帮助我们查看SQL查询的执行计划,这对于优化查询非常重要。例如: ```sql EXPLAIN SELECT * FROM tb_item; ``` ##### 结果说明 - **id**:表示SELECT查询的序列号。这个字段在...

    老生常谈MYSQL模式匹配 REGEXP和like的用法

    1. `.`:匹配任意单个字符,除了换行符。 2. `^`:匹配输入字符串的开始位置。 3. `$`:匹配输入字符串的结束位置。 4. `*`:匹配前面的子表达式零次或多次。 5. `+`:匹配前面的子表达式一次或多次。 6. `{n}`:...

    30种mysql优化sql语句查询的方法.pdf

    5. **避免使用LIKE百分比模糊匹配**:对于模糊查询,考虑使用全文检索或调整查询策略以利用索引。 6. **谨慎使用IN和NOT IN**:对于连续数值,使用`BETWEEN`代替;对于大量值,考虑使用子查询或临时表。 7. **避免...

    MySQL性能优化的21个最佳实践

    例如,使用LIKE操作符进行部分匹配时,如果字段有索引,性能会显著提高。 5. **JOIN操作的优化**:确保JOIN操作的关联字段已建立索引,并且它们是相同类型和字符集。这将帮助MySQL更有效地执行JOIN操作,避免全表...

    有关MySQL数据库与标准的兼容性问题 电脑资料.docx

    - **LIKE**:在数字列上也可以使用LIKE操作符。 - **INTO OUTFILE**:SELECT语句可以将结果直接导出到文件。 - **STRAIGHT_JOIN**:强制使用特定的连接顺序。 - **SQLSMALLRESULT**:优化查询结果内存使用。 - ...

    joe_MySQL笔记

    ### MySQL基础知识及操作指南 ...以上是MySQL中一些常用的操作和概念的详细介绍,涵盖了从基础配置到复杂查询等多个方面。这些知识点对于理解和掌握MySQL非常关键,无论是初学者还是有一定经验的开发者都应熟练掌握。

    MySQL+数据导入导出+实用技巧

    默认情况下,MySQL 使用制表符 (`\t`) 作为字段分隔符,使用换行符 (`\n`) 作为记录分隔符。这种格式在大多数情况下都是适用的,但在特殊情况下可能需要调整。 #### 五、实用技巧:数据冷备 数据冷备是一种常用的...

    Mysql5.6性能优化

    - **id**:SELECT识别符,表示查询序列号,一般不重要。 - **select_type**:表示SELECT语句的类型,常见的类型包括: - **SIMPLE**:简单的查询,不含子查询或连接查询。 - **PRIMARY**:主查询,即最外层的...

    mysql查询的时候给字段赋默认值操作

    - **模糊查询**:MySQL提供了`LIKE`操作符进行模糊匹配,配合`%`和`_`通配符使用,但`LIKE`可能导致性能问题,可以通过创建全文索引、优化查询语句或使用`REGEXP`等方法提升性能。 - **表锁检查**:当怀疑表被锁定...

Global site tag (gtag.js) - Google Analytics