记录MySQL中功能强大的函数使用
FIND_IN_SET
FIND_IN_SET(str, strlist) 函数用于搜索一个字符串是否存在于一个以逗号分隔的字符串列表中,并返回其位置(从1开始)。如果未找到,则返回0;如果任一参数为 NULL,则结果也为 NULL。
语法
FIND_IN_SET(str, strlist)
str: 要查找的字符串。
strlist: 由逗号分隔的字符串列表。
示例
假设有一个表 employees,其中有一列 skills 存储员工技能(以逗号分隔)。
SELECT * FROM employees WHERE FIND_IN_SET('Java', skills) > 0;
WITH ROLLUP
WITH ROLLUP 是用于与 GROUP BY 子句一起使用的一个修饰符,它提供了一种方法来创建汇总行。这对于生成小计和总计特别有用。
语法
SELECT ... GROUP BY ..., WITH ROLLUP
如果我们想要按类别统计总销售额并同时获取全部产品的总销售额,可以使用 WITH ROLLUP 如下:
SELECT category, SUM(sales) AS total_sales
FROM sales
GROUP BY category WITH ROLLUP;