MySQL常用函数(二)

CONCAT_WS函数

CONCAT_WS 是 MySQL 中的一个函数,用于将多个字符串连接在一起,可以指定一个分隔符来分隔这些字符串。这个函数的语法如下:

CONCAT_WS(separator, str1, str2, ...)
  • separator 是用来分隔字符串的分隔符。
  • str1, str2, … 是要连接的字符串。

CONCAT_WS 函数会将指定的分隔符插入到每个非 NULL 字符串之间,然后将它们连接成一个单独的字符串。如果某个字符串为 NULL,则该字符串不会包含在结果中。

例如,CONCAT_WS(',', 'apple', 'banana', 'orange') 将返回 'apple,banana,orange',其中逗号是分隔符。
CONCAT函数
CONCAT 是 SQL 中用于连接字符串的函数,它用于将两个或多个字符串连接在一起形成一个更大的字符串。该函数的语法如下:

CONCAT(str1, str2, ...)
  • str1, str2, … 是要连接的字符串。

CONCAT 函数会将所有参数连接在一起,返回一个包含所有输入字符串连接结果的新字符串。如果有任何参数为 NULL,则该函数将返回 NULL。

例如,CONCAT('Hello', ' ', 'World') 将返回 'Hello World'

CONCAT 函数可以用于连接列,也可以与其他字符串函数一起使用。在许多 SQL 数据库中,包括 MySQL,该函数还支持将列名作为参数进行连接。

IF函数
在 MySQL 中,IF 函数用于在查询中执行条件逻辑。IF 函数的语法如下:

IF(condition, value_if_true, value_if_false)
  • condition 是一个条件表达式,如果条件为真(非零),则返回 value_if_true,否则返回 value_if_false
  • value_if_true 是条件为真时返回的值。
  • value_if_false 是条件为假时返回的值。

下面是一个简单的示例,演示如何在 MySQL 中使用 IF 函数:

SELECT 
    name,
    age,
    IF(age >= 18, 'Adult', 'Minor') AS age_group
FROM persons;

在这个示例中,如果 age 大于或等于 18 岁,则 age_group 列将显示为 'Adult',否则显示为 'Minor'

您可以根据需要在查询中使用 IF 函数来执行条件逻辑,根据条件的结果返回不同的值。

GROUP_CONCAT函数
GROUP_CONCAT 函数是一种在数据库中常用的聚合函数,它用于将多行数据按照指定的顺序连接成一个字符串。它在许多关系型数据库管理系统(如MySQL、SQLite、PostgreSQL等)中都有支持。

GROUP_CONCAT 函数通常与 GROUP BY 子句一起使用,以将多个行按照某个列进行分组,并将每个分组内的值连接成一个字符串。

下面是一个示例查询,演示了如何在 MySQL 中使用 GROUP_CONCAT 函数:

SELECT category, GROUP_CONCAT(product_name SEPARATOR ', ') AS products
FROM products
GROUP BY category;

在上述示例中,假设有一个名为 “products” 的表,包含 “category” 和 “product_name” 列。通过使用 GROUP_CONCAT 函数,我们按照 “category” 列进行分组,并将每个分组内的 “product_name” 值连接成一个以逗号分隔的字符串,结果将包含 “category” 和 “products” 两列。

请注意,不同的数据库管理系统对于 GROUP_CONCAT 函数的语法和选项可能会有所不同。因此,在具体的数据库系统中使用时,建议参考该数据库的官方文档以获取准确的语法和用法说明。

JSON_UNQUOTE函数
JSON_UNQUOTE 函数是用于从 JSON 字符串中移除引号的 MySQL 函数。它用于将 JSON 字符串中的引号去除,返回未引用的字符串。

在 MySQL 中,JSON_UNQUOTE 函数的语法如下:

JSON_UNQUOTE(json_val)

其中,json_val 是一个 JSON 字符串或一个返回 JSON 值的表达式。

以下是一个简单的示例,演示了如何在 MySQL 中使用 JSON_UNQUOTE 函数:

假设我们有一个名为 data 的表,其中包含一个名为 json_column 的 JSON 类型的列。该列包含以下 JSON 字符串:"\"Hello, World!\""

我们可以使用 JSON_UNQUOTE 函数来移除引号,如下所示:

SELECT JSON_UNQUOTE(json_column) AS unquoted_json
FROM data;

这将返回一个名为 unquoted_json 的列,其中包含去除引号后的 JSON 字符串。在这个例子中,结果将是 Hello, World!

需要注意的是,JSON_UNQUOTE 函数在 MySQL 5.7.8 版本及更高版本中可用。

JSON_EXTRACT函数
JSON_EXTRACT 函数是用于从 JSON 字符串中提取特定路径下的值的函数,它在许多数据库系统中都有支持,如MySQL、PostgreSQL等。

在 MySQL 中,JSON_EXTRACT 函数的语法如下:

JSON_EXTRACT(json_doc, path)

其中,json_doc 是一个 JSON 字符串或一个返回 JSON 值的表达式,path 是用于指定要提取的值路径的字符串。

以下是一个简单的示例,演示了如何在 MySQL 中使用 JSON_EXTRACT 函数:

假设我们有一个名为 data 的表,其中包含一个名为 json_column 的 JSON 类型的列。该列包含以下 JSON 字符串:{"name": "Alice", "age": 30}

我们可以使用 JSON_EXTRACT 函数来提取特定路径下的值,如下所示:

SELECT JSON_EXTRACT(json_column, '$.name') AS extracted_name
FROM data;

在这个例子中,JSON_EXTRACT 函数将从 json_column 中提取 name 字段的值,并将其作为 extracted_name 列返回。结果将是 Alice

需要注意的是,JSON_EXTRACT 函数在 MySQL 5.7.8 版本及更高版本中可用。

MAX函数
MAX 函数是在 SQL 中用于返回一组值中的最大值的聚合函数。它可以用于任何支持 SQL 的数据库系统,包括 MySQL、PostgreSQL、Oracle 等。

在 MySQL 中,MAX 函数的语法如下:

MAX(expr)

其中,expr 是一个表达式,可以是列名、函数、常量等。

以下是一个简单的示例,演示了如何在 MySQL 中使用 MAX 函数:

假设我们有一个名为 students 的表,其中包含一个名为 score 的列,用于存储学生的分数。

我们可以使用 MAX 函数来获取最高分,如下所示:

SELECT MAX(score) AS max_score
FROM students;

这将返回一个名为 max_score 的列,其中包含 score 列中的最大值。

需要注意的是,MAX 函数可以用于不同的数据类型,包括数值、日期、字符串等。对于字符串类型,它将根据字母顺序来确定最大值。

LEFT函数
LEFT 函数是在许多 SQL 数据库管理系统中常见的函数之一,用于从字符串的左侧提取指定长度的字符。其基本语法如下:

LEFT(string, length)

其中:

  • string 是要提取字符的字符串。
  • length 是要提取的字符数。

LEFT 函数将返回字符串 string 的左侧 length 个字符。如果 length 大于字符串的实际长度,将返回整个字符串;如果 length 为负数或零,将返回一个空字符串。这个函数在很多情况下都非常有用,比如在需要截取字符串的情况下。

LENGTH函数

在 SQL 中,LENGTH 函数通常用于返回字符串的长度,即返回字符串中的字符数。不同的数据库管理系统可能有不同的具体实现,但通常情况下,LENGTH 函数的语法如下:

LENGTH(string)

其中:

  • string 是要计算长度的字符串。

LENGTH 函数返回字符串 string 中的字符数。请注意,LENGTH 函数通常是区分大小写的,因此可能会计算区分大小写的字符数。在某些数据库系统中,也可以使用 LEN 函数来执行类似的操作,但 LEN 函数可能只计算非空字符的数量,而不计算空格字符。

  • 14
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

知识的宝藏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值