mysql中的字符函数举例

1:字符函数

concat()

说明:将字符串连接,可以是一个或多个字符串。若都是非二进制的字符,那么返回的结果也是非二进制的。若包含任何二进制字符,那么结果则是二进制的。若是数值型的,也将转换成非二进制的形式。若其中任意一个字符是NULL,则CONCAT()返回的结果为NULL.。

语法:concat(str1,str2......)

举例:

SELECT CONCAT(‘你‘,‘是‘,‘谁‘);结果为:你是谁

SELECT CONCAT(‘你‘,NULL,‘谁‘); 结果为:NULL

SELECT CONCAT(13.2);结果为:13.2

concat_ws()

说明:表示用分隔符将字符串连接,是一种特殊形式的连接函数。第一个参数表示分隔符,各字符串之间通过分隔符连接,分隔符可以是一个字符串,也可以是其他形式,如果分隔符为NULL,那么返回的结果也是NULL。

语法:CONCAT_WS(separator,str1,str2,…);

举例:

SELECT CONCAT_WS(‘-‘,‘1‘,‘2‘,‘3‘);  结果为:1-2-3

SELECT CONCAT_WS(NULL,‘1‘,‘2‘,‘3‘); 结果为:NULL

  ELT()

    说明:ELT函数是指返回一个字符串List的第N个元素,如果N=1,返回str1;如果N=2,返回str2. 如果N小于1或大于字符串元素的个数,则返回NULL。

语法:ELT(N,str1,str2,str3,…);

举例:

SELECT ELT(4,‘1‘,‘2‘,‘3‘); 结果为:NULL

SELECT ELT(1,‘你‘,‘是‘,‘谁‘); 结果为:你

  FIELD()

说明:FIELD函数是指返回某字符串在字符串List的位置,如果字符串List未找到指定的字符串,则返回0. 若FIELD()中所有的参数都是字符串型,则将以字符串类型作为比较;如果所有的参数都是数字型,则将以数字类型作为比较;否则,以double类型进行比较。如果字符串为NULL,则返回的值为0,因为NULL和所有值比较都不相等。

语法:FIELT(N,str1,str2,str3,…);

举例:

SELECT FIELD(‘你‘,‘你‘,‘是‘,‘谁‘); 结果为:1

SELECT FIELD(‘好‘,‘你‘,‘是‘,‘谁‘); 结果为:0

SELECT FIELD(NULL,‘你‘,‘是‘,‘谁‘); 结果为:0

INSERT()

说明:从起始位置截取一定长度的字符串,用新字符串代替截取的字符串,返回结果。如果位置不在字符串的长度范围内,则返回原始字符串。如果长度不在字符串剩余长度范围内,则从起始位置将剩余的字符串替换。如果任意一个参数为NULL,则结果返回NULL。

语法:INSERT(str,pos,len,newstr);

举例:

SELECT INSERT(‘Quadratic‘,3,4,‘What‘);  结果为:QuWhattic

SELECT INSERT(‘Quadratic‘,-1,4,‘What‘);  结果为:Quadratic

SELECT INSERT(‘Quadratic‘,3,100,‘What‘);  结果为:QuWhat

SELECT INSERT(‘Quadratic‘,NULL,100,‘What‘);  结果为:NULL

INSTR()

     说明:返回字符串中所要截取的字符串第一次出现的位置。此函数的功能和带有两个参数的LOCATE()函数相同,只是参数的顺序是相反的。

语法:INSTR(str,substr);

举例:

SELECT INSTR(‘foobarbar‘,bar‘); 结果为:4

SELECT INSTR(‘xbar‘,‘foobar‘); 结果为:0

LOCATE()

说明:带有两个参数的LOCATE()函数返回字符串中所要截取的字符串第一次出现的位置。三个参数的LOCATE()指的是从字符串的指定位置开始,得出所要截取的字符串第一次出现的位置

语法:LOCATE(substr,str),LOCATE(substr,str,pos)

举例;

SELECT LOCATE(‘bar‘,‘foobarbar‘); 结果为:4

SELECT LOCATE(‘xbar‘,‘foobar‘);;结果为:0

SELECT LOCATE(‘bar‘,‘foobarbar‘,5);结果为:7

SUBSTRING()

说明:和SUBSTR()同义。共有4种形式。没有len参数的形式,是指从指定的位置开始截取字符串,结果是截取后的字符串;有len参数的,是指从指定的位置开始截取len长度的字符串;带有FROM的形式,是标准的SQL形式,但其位置可能是一个负数,则截取字符串是从字符串最后位置开始截取,而不是起始位置。

         语法:SUBSTRING(str,pos),SUBSTRING(str FROM pos),SUBSTRING(str,pos,len),SUBSTRING(str FROM pos FOR len)

         举例:省略。。。

SUBSTRING_INDEX()

          说明:返回一个字符串中,从某个标记出现的某个次数开始截取的结果。如果次数是一个正值,则返回这个字符左边的所有字符;如果这个值是一个负值,则返回这个字符右边的所有字符。

          语法:SUBSTRING_INDEX(str,delim,count)

举例:

SELECT SUBSTRING_INDEX(‘www.mysql.com‘,‘.‘,2);结果为:www.mysql

SELECT SUBSTRING_INDEX(‘www.mysql.com‘,‘.‘,-2);结果为:mysql.com

原文地址:https://www.cnblogs.com/pigwood/p/9957348.html

时间: 2024-08-29 10:08:57

mysql中的字符函数举例的相关文章

Mysql中常用的函数汇总

Mysql中常用的函数汇总: 一.数学函数abs(x) 返回x的绝对值bin(x) 返回x的二进制(oct返回八进制,hex返回十六进制)ceiling(x) 返回大于x的最小整数值exp(x) 返回值e(自然对数的底)的x次方floor(x) 返回小于x的最大整数值greatest(x1,x2,...,xn)返回集合中最大的值least(x1,x2,...,xn) 返回集合中最小的值ln(x) 返回x的自然对数log(x,y)返回x的以y为底的对数mod(x,y) 返回x/y的模(余数)pi(

Mysql中使用find_in_set函数查找字符串

mysql有个表的字段的存储是以逗号分隔的,如domain字段login.s01.yy.com,s01.yy.com,s02.yy.com.现在要查找s01.yy.com这个.我们用like查找好像不是非常准确.那就试试mysql中的find_in_set函数吧. SELECT find_in_set('a','a,b,c,d') as test

Mysql中使用聚合函数对null值的处理

平时因为对于数据库研习的不深,所以在面试的时候问了一些平常遇到过的问题居然没法很肯定地回答出来,实在让自己很恼怒! 这次让我记忆深刻的一个问题是: 在mysql中使用聚合函数的时候比如avg(t),t是表中一个类型int型的字段,可为null,有三行数据,三行中的数据分别为:10,null,20,请问最后的结果是什么? 我的回答是15,在面试结束之后我尝试了一下结果没错,不过我对于聚集函数对null的处理貌似错了,我认为是聚合函数会将null值看作0,找了一番,博客中都认为是忽略null值,因为

MySQL 中的 FOUND_ROWS() 函数

移植sql server 的存储过程到mysql中,遇到了sql server中的: IF @@ROWCOUNT < 1 对应到mysql中可以使用 FOUND_ROWS() 函数来替换. 1. found_rows() 函数的文档: http://dev.mysql.com/doc/refman/5.6/en/information-functions.html#function_found-rows 1)found_rows() 的第一种使用情况(带有SQL_CALC_FOUND_ROWS,

Mysql中关于 group_concat函数详解

group_concat()主要功能:能将相同的行组合起来 完整的语法如下: group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符']) 基本查询 Sql代码   select * from aa; +------+------+| id| name |+------+------+|1 | 10||1 | 20||1 | 20||2 | 20||3 | 200 ||3 | 500 |+------+---

SQLServer 中实现类似MySQL中的group_concat函数的功能

SQLServer中没有MySQL中的group_concat函数,可以把分组的数据连接在一起. 后在网上查找,找到了可以实现此功能的方法,特此记录下. SELECT a, stuff((SELECT ',' + b FROM #tb WHERE a = t.a FOR xml path('')), 1, 1, '' )AS b from  # tb AS t GROUP BY a; 先对a列进行分组,对分组中的b以Xml形式输出,再使用stuff将开关多出的,删掉. 具体实现参考:http:/

mysql中的group_concat函数的用法

1 本文通过实例介绍了MySQL中的group_concat函数的使用方法,比如select group_concat(name) . 2 MySQL中group_concat函数 3 完整的语法如下: 4 group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符']) 5 基本查询 6 mysql> select * from aa; 7 +------+------+ 8 | id| name | 9 +-

mysql中的ifnull()函数判断空值

我们知道,在不同的数据库引擎中,内置函数的实现.命名都是存在差异的,如果经常切换使用这几个数据库引擎的话,很容易会将这些函数弄混淆. 比如说判断空值的函数,在Oracle中是NVL()函数.NVL2()函数,在SQL Server中是ISNULL()函数,这些函数都包含了当值为空值的时候将返回值替换成另一个值的第二参数. 但是在MySQL中,ISNULL()函数仅仅是用于判断空值的,接受一个参数并返回一个布尔值,不提供当值为空值的时候将返回值替换成另一个值的第二参数. SELECT ISNULL

mysql中length字符长度函数使用方法

在mysql中length是计算字段的长度一个汉字是算三个字符,一个数字或字母算一个字符了,与char_length是有一点区别,本文章重点介绍第一个函数. mysql里面的length函数是一个用来获取字符串长度的内置函数.具体用法示例如下: (1)查看某字符串的长度(比如本站网址) SELECT LENGTH('www.111cn.Net'); (2)查询文章表(article)中标题最长的10篇文章 SELECT id,title FROM article ORDER BY LENGTH(