SQL系列:常用函数
1、【MySQL】合并字段函数(列转行)
它可以将两个字段中的数据合并到一个字段中。
1)CONCAT函数
CONCAT函数可以将多个字段中的数据合并到一个字段中。它的语法格式如下:
SELECT CONCAT(字段1,字段2,...字段N) FROM 表名;SELECT CONCAT(name,age) FROM stu;
2)CONCAT_WS函数
CONCAT_WS函数是可以将多个字段中的数据合并到一个字段中,并且在合并的过程中可以指定分隔符。它的语法格式如下:
SELECT CONCAT_WS(分隔符,字段1,字段2,...字段N) FROM 表名;SELECT CONCAT_WS('-',name,age) FROM stu;
3)GROUP_CONCAT函数
GROUP_CONCAT函数可以将多个字段中的数据合并到一个字段中,并且在合并的过程中可以指定分隔符,而且它还可以根据指定的字段进行分组,从而使得合并的数据更加有序。它的语法格式如下:
SELECT GROUP_CONCAT(字段1,字段2,...字段N ORDER BY 字段 SEPARATOR 分隔符) FROM 表名;SELECT GROUP_CONCAT(name,age ORDER BY age SEPARATOR '-') FROM stu;
2、【MySQL】LOCATE函数详解
用于返回子字符串在主字符串中第一次出现的位置。如果子字符串不存在于主字符串中,函数将返回 0
。位置索引从 1
开始计数。它的语法格式如下:
LOCATE(substring, string, start)#返回所有电子邮件地址包含 '@example.com' 的数据
SELECT name FROM stuWHERE LOCATE('@example.com', email) > 0;
substring
:需要查找的子字符串。string
:主字符串,搜索的目标字符串。start
(可选):指定从主字符串的哪个位置开始搜索。默认为1
,即从字符串开头开始。
注意:
1、该函数大小写敏感
2、在处理大量数据时,频繁使用
LOCATE
函数可能会影响查询性能。3、如果传递给
LOCATE
函数的任何参数为NULL
,函数将返回NULL
4、
在多字节字符集中,LOCATE
函数可能需要正确处理字符编码,以确保准确定位
与其他函数相比较
LOCATE
和INSTR
都用于查找子字符串的位置,区别在于参数顺序和某些实现细节。FIND_IN_SET
和FIELD
更适用于查找列表中的元素位置,而不是子字符串在字符串中的位置。
未完待续(用到时刻补充)。。。