数据库

 首页 > 数据库 > MySql > mysql中常用的字符串函数可能有的朋友会担心mysql的性能不行

mysql中常用的字符串函数可能有的朋友会担心mysql的性能不行

分享到:
【字体:
导读:
         摘要:写在分割线之前,个人以为,数据库应该具备简单的的数据加工能力。如同食品在吃之前,是要经过很多到工序的,有经过初加工、粗加工、精加工、深加工等。那么mysql也应该并必须担任起数据初加工以及粗加工的责任。不能让所有数据处理的工作都交给PHP去做。这样不仅使程序冗余而且效率底下...

mysql中常用的字符串函数可能有的朋友会担心mysql的性能不行

  写在分割线之前,个人以为,数据库应该具备简单的的数据加工能力。如同食品在吃之前,是要经过很多到工序的,有经过初加工、粗加工、精加工、深加工等。那么mysql也应该并必须担任起数据初加工以及粗加工的责任。不能让所有数据处理的工作都交给PHP去做。这样不仅使程序冗余而且效率底下。

     可能有的朋友会担心mysql的性能不行,数据处理的任务分隔到mysql上会使mysql的压力增大。私以为这是不足担心的,mysql虽然性能不高,但足以支持中小规模的公司使用。


 

 

1、char_length(str);

 

2、concat(),当拼接的值之间有一个为空,拼接的所有值也为空。

 

3、concat_ws('连接字符',字段1,字段2,字段n);

这个函数,我自己的使用频率是非常高的,替我轻松的解决了很多问题,省略了很多foreach的语句。

 

4、repeat  这个函数相当于PHP里面的str_repeat函数。

 

5、locate函数。找到某个字符在另一个字符串中的位置。相当与PHP中的strpos  。

这个函数用处也不少。知道了某个字符的位置后,就可以直接在程序中使用分隔字符串,只输出自己想要的内容。省了使用explode函数了。

 

7、find_in_set('str','strlist').其中str是一个字符串,strlist是一个字符串列表,中间用逗号分隔开。

  

 

8、trim

     trim 在php中用到的比较多,几乎很少在mysql中用到。但是有的时候,如果可以使用mysql的函数,能够极大的提高工作效率。

     

复制代码
create table test_trim(
    id int primary key auto_increment,
    test varchar(255) not null )engine=innodb default charset=utf8; insert into test_trim(id,test)values(null,' liangzi'),
(null,'rover '),(null,'_liangzi'),(null,'rover_'),
(null,'_both_');
复制代码

 

 

  如果我们想要祛除字符左边的空格。(如id=1)。可以进行如下操作。

   select ltrim(test) new from test_trim where id =1; 

  可能结果会看起来不明显,用这两个语句对比看起来会比较明显.

  

select length(test) new from test_trim where id = 1; select length(ltrim(test)) new from test_trim where id = 1;

如果想要祛除右边字符的空格,(id=2).和祛除左边的空格一样,用rtrim 就行了。

如果我想祛除id=3左边的下划线,想要祛除id=4右边的下划线怎么办。可以指定两个关键字来进行祛除字符或者字符串。

leading  在前的。

trailing  拖尾的,后面的。

both     两端的。

具体用法如下。

 祛除左边的字符或字符串。

 select trim(leading '_' from test) new from test_trim where id = 3; 

祛除右边的字符或字符串。

 select trim(trailing '_' from test) new from test_trim where id =4; 

  祛除两端的字符或者字符串

 select trim(both '_'from test) new from test_trim where id = 5; 

 

9、 group_concat 函数也非常有用,使用大为有益,可以在php端省却大量遍历代码

有一个表数据如下,想用一条sql将表中所有的id都用逗号拼接起来。

mysql中常用的字符串函数可能有的朋友会担心mysql的性能不行
分享到:
MySQL改密码报错:ERROR 1045: Access de...
MySQL改密码报错:ERROR 1045: Access denied for user: 'root@localhost' (Using password: YES)    明天去面试,今晚想看看MySQL的一些指令,虽然之前一直在用Mysql,但是感觉都是在做一些简单的操作。结果刚开始捣腾Mysql就吃了闭门羹,我之前一直用的>mysql -uroot -p。Enter Password:123456去链接Mysq...
Mysql学习笔记(八)由触发器回顾外键约...
Mysql学习笔记(八)由触发器回顾外键约束中的级联选项 近些天都没有写博客。在学习mysql的知识,通过学习和练习,也熟悉了mysql的函数、触发器、视图和存储过程。并且在实际的开发过程中也应用了一小部分。效果还是十分理想的。 今天晚上在学习触发器模仿innodb的级联选项的时候,回顾到了前面的外键约束方面的知...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……