mysql查询字段中带空格的值的sql语句

   (1)mysql replace 函数

  语法:replace(object,search,replace)

  意思:把object中出现search的全部替换为replace

 代码如下  

 

update `news` set `content`=replace(`content`,' ','');//清除news表中content字段中的空格 这样就可以直接用like查询了。

  (2)mysql trim 函数

  语法:trim([{BOTH | LEADING | TRAILING} [remstr] FROM] str)

  以下举例说明:

 代码如下  

mysql> SELECT TRIM(' phpernote  '); 

-> 'phpernote' 

mysql> SELECT TRIM(LEADING 'x' FROM 'xxxphpernotexxx'); 

-> 'phpernotexxx'

mysql> SELECT TRIM(BOTH 'x' FROM 'xxxphpernotexxx'); 

-> 'phpernote' 

mysql> SELECT TRIM(TRAILING 'xyz' FROM 'phpernotexxyz'); 

-> 'phpernotex' 

  当我们在使用sql查询的时候,如果数据库中的这个字段的值含有空格(字符串内部,非首尾),或者我们查询的字符串中间有空格,而字段中没有空格。那么我们很有可能就什么都查不到。假如有下面的一张表:

  表名

  id url title content

  这张表里面,第一和第二条记录的title部分是有空格的,如果我们并不知道,或者由于内容的不能,有无空格有很大的不确定性:

 代码如下  

select * from table where title = '李杨技术博客';
select * from table where title like '%李杨技术博客%';

  以上两句sql均无法查询出正确的结果,那么我们应该怎么写呢?

  请看下面:

 代码如下  

select * from table where trim(replace(title,' ','')) = trim(replace('李杨技术博客',' ',''));
select * from table where trim(replace(title,' ','')) like trim(replace('%李杨 技术博客%',' ',''));

  trim的作用是去掉字符串收尾的空格,replace的作用是去掉字符串内部的空格。

  这样就可以正确的进行匹配了,如果不希望给mysql太多压力,条件部分的对空格的处理我们可以在程序中实现。

时间: 2024-10-04 17:46:10

mysql查询字段中带空格的值的sql语句的相关文章

MySQL查询数据库中重复的记录几条sql

1.根据表中单个字段(name)来查询重复记录 SELECT * FROM user WHERE name IN ( SELECT name FROM user GROUP BY name HAVING COUNT(name) > 1 ); 2.根据表中单个字段(name),删除重复记录,只保留id最小的记录 DELETE FROM user WHERE name IN ( SELECT name FROM user GROUP BY name HAVING COUNT(name) > 1 )

mysql清除数据库中字符串空格方法

(1)mysql replace 函数 语法:replace(object,search,replace) 意思:把object中出现search的全部替换为replace 案例:  代码如下 复制代码 1 update `news` set `content`=replace(`content`,' ',''); //清除news表中content字段中的空格 (2)mysql trim 函数 完整格式:TRIM([{BOTH | LEADING | TRAILING} [remstr] FR

MySQL查询字符串中包含字符的记录

REGEXP 例1.查询字段中包含非英文的数据  代码如下 复制代码 SELECT * FROM `m_user` WHERE `emp_no` REGEXP '[^ -~]' =1 列2.这样能把所有不含英文的都搞出来  代码如下 复制代码 SELECT * FROM table WHERE name NOT REGEXP '[a-zA-Z0-9]+' 当然除了regexp之外还可以使用FIND_IN_SET,like来操作 FIND_IN_SET mysql中如何使用FIND_IN_SET(

文件名带空格-svn 设置文件名中带空格的文件权限不起作用

问题描述 svn 设置文件名中带空格的文件权限不起作用 现象:文件名中带空格,在svn中设置权限后不起作用,去掉空格后权限起作用 期望:文件名中想留着空格,还想让权限起作用,请明白人给个办法,谢谢.

MySQL中查询所有数据库占用磁盘空间大小和单个库中所有表的大小的sql语句_Mysql

查询所有数据库占用磁盘空间大小的SQL语句: 复制代码 代码如下: select TABLE_SCHEMA, concat(truncate(sum(data_length)/1024/1024,2),' MB') as data_size,concat(truncate(sum(index_length)/1024/1024,2),'MB') as index_sizefrom information_schema.tablesgroup by TABLE_SCHEMAorder by dat

mysql-Mysql向表中某个字段添加有规律字符串怎么写SQL语句?例如(1P,2P,3P)

问题描述 Mysql向表中某个字段添加有规律字符串怎么写SQL语句?例如(1P,2P,3P) 如图所示 表 b 有三个字段aid,partname,partid,我希望partid字段可以根据partname字段的值添加有规律的字符串. 例如 partname字段值为PART 1则partid字段添加值 1P,partname字段值为PART 2则partid字段添加值 2P, partname的值除了上述格式还有TV 01,TV 02,特征都是字符串有(无)空格加数字, 还有种就是数字夹在字符

代码-MySql动态行转列,网上找的sql语句,需要再添加字段,求帮忙谢谢大家

问题描述 MySql动态行转列,网上找的sql语句,需要再添加字段,求帮忙谢谢大家 SELECT -> IFNULL(c1,'total') AS total, -> SUM(IF(c2='B1',c3,0)) AS B1, -> SUM(IF(c2='B2',c3,0)) AS B2, -> SUM(IF(c2='B3',c3,0)) AS B3, -> SUM(IF(c2='B4',c3,0)) AS B4, -> SUM(IF(c2='total',c3,0))

mysql中将textbox中的数据修改传给datatable语句出现问题

问题描述 mysql中将textbox中的数据修改传给datatable语句出现问题 解决方案 ...->rows->default[0]->default[1]... 解决方案二: 不能直接对Rows[x][y]赋值,它是只读的,要更新或插入应该用update和insert,不能直接改

sqlserver中操作主从关系表的sql语句

sqlserver中操作主从关系表的sql语句,重点讲解,科目信息传递过后怎么处理.假设从表Tb_StudentSubject 存在StudentId,SubjectId两个字段.那么代码如下: 复制代码 代码如下: Create proc SaveInfo ( ---参数列表不再逐一书写 @subjectList varchar(400)) as begin tran --新增或修改主表 省略 DECLARE @subjectID int, @subjectIDsLen int,--科目长度