MySQL提供了一系列的拼接函数,用于拼接字符串或者查询结果。如CONCAT函数可用于拼接多个表达式、CONCAT_WS函数可用于依据分隔符拼接多个表达式,EXTRACTVALUE()可用于从XML字符串中抽取内容,FORMAT函数可用于将数字格式化为字符串。下面分别介绍这四个常用的拼接函数:
#### CONCAT函数
CONCAT函数可用于拼接多个表达式,调用格式如下:
SELECT CONCAT(str1,str2,str3...strn)
其中str1,str2,str3…strn可以是字符串、字段、表达式等等。
例如,可以用CONCAT函数拼接姓名和性别为一个新的字段,如下代码:
SELECT CONCAT(name,'(',sex,')') as real_name FROM Person
#### CONCAT_WS函数
CONCAT_WS函数可用于依据分隔符拼接多个表达式,调用格式如下:
SELECT CONCAT_WS(separator,str1,str2,str3...strn)
其中separator表示分隔符,str1,str2,str3…strn表示拼接的内容,可以是字符串、字段、表达式等等。
例如,可以用CONCAT_WS函数拼接几个字段及分隔符,如下代码:
SELECT CONCAT_WS('---',name,sex,age) as detail FROM Person
#### EXTRACTVALUE()
EXTRACTVALUE()可用于从XML字符串中抽取内容,调用格式如下:
SELECT EXTRACTVALUE(xml_document,xpath_string)
其中xml_document表示要抽取的XML文档,xpath_string表示选取文档节点的XPath表达式,如果此XPath正确匹配了某个节点,则返回此节点的文本内容。
例如,以下XML文档:
Tom
male
20
可以用以下代码抽取其name节点的内容:
SELECT EXTRACTVALUE(
'Tommale20',
'/person/name'
)
#### FORMAT函数
FORMAT函数可用于将数字格式化为字符串,调用格式如下:
SELECT FORMAT(num,expr)
其中num表示要格式化的数字,expr表示格式化的表达式。
例如,可以用以下代码将数字123456格式化为字符串:
SELECT FORMAT(123456,2)
该代码将123456格式化为“123,456.00”。
MySQL中拼接函数被广泛应用于数据处理,可以用于拼接字符串、抽取XML文档中的内容或将数字转换为字符串。上面介绍的这四个常用函数为数据处理提供了极大的方便,值得使用者了解和掌握。