字符串类
拼接
CONCAT
CONCAT函数用于连接两个字符串,形成一个字符串。
1 | SQL> SELECT CONCAT('FIRST ', 'SECOND'); |
GROUP_CONCAT
GROUP_CONCAT()函数将组中的字符串连接成为具有各种选项的单个字符串。
1 | group_concat([DISTINCT] 要连接的字段 [Order BY 排序字段 ASC/DESC] [Separator '分隔符']) |
例题:1484. 按日期分组销售产品!
编写一个 SQL 查询来查找每个日期、销售的不同产品的数量及其名称。
每个日期的销售产品名称应按词典序排列。
返回按sell_date排序的结果表。
1 | select sell_date ,COUNT(DISTINCT product) as num_sold , |
##查找
LOCATE(substr,str)
LOCATE(substr,str)
第一个语法返回字符串 str中子字符串substr的第一个出现位置。
如若substr 不在str中,则返回值为0。
LEFT(str,length)
LEFT()函数接受两个参数:
- str是要提取子字符串的字符串。
- length是一个正整数,指定将从左边返回的字符数。
LEFT()函数返回str字符串中最左边的长度字符。如果str或length参数为NULL,则返回NULL值。
如果length为0或为负,则LEFT函数返回一个空字符串。如果length大于str字符串的长度,则LEFT函数返回整个str字符串。
表
操作
UNION
UNION 操作符用于合并两个或多个 SELECT 语句的结果集。
请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。
Union:对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序;
1 | SELECT column_name(s) FROM table_name1 |
UNION ALL
Union All:对两个结果集进行并集操作,包括重复行,不进行排序;
1 | SELECT column_name(s) FROM table_name1 |
日期
运算
DATEDIFF
DATEDIFF函数接受两个任何有效日期或日期时间值的参数。如果您传递DATETIME或TIMESTAMP值,则DATEDIFF函数仅将日期部分用于计算,并忽略时间部分。
DATEDIFF函数在许多情况下很有用,例如,您可以计算产品需要发送给客户的间隔时间。
1 | DATEDIFF(a.recordDate, b.recordDate) = 1 |
日期相差一天