
MySQL 常见函数
UNION 和 UNION ALL
union
用于把来自多个 select
语句的结果组合到一个结果集合中。
语法为:
select column,......from table1
union [all]
select column,...... from table2
...
在多个 select
语句中,对应的列应该具有相同的字段属性,且第一个 select
语句中被使用的字段名称也被用于结果的字段名称。
union 与 union all 的区别
当使用 union
时,mysql 会把结果集中重复的记录删掉,而使用 union all
,mysql 会把所有的记录返回,且效率高于 union
。
FIND_IN_SET
FIND_IN_SET()
是MySQL用于字符串查找的函数。
语法为 FIND_IN_SET(str, strlist)
,其中 str
是要查找的目标字符串,strlist
是逗号分隔的字符串列表。
该函数在 strlist
中查找 str
。若找到,返回 str
在 strlist
中的位置(从1开始计数);若未找到,返回0 。若 str
或 strlist
为 NULL
,则返回 NULL
。
concat
用于将多个字符串连接成一个字符串。
语法为:
concat(str1, str2,...)
返回结果为连接参数产生的字符串,如果有任何一个参数为null,则返回值为null。
concat_ws
concat()一样,将多个字符串连接成一个字符串,但是可以一次性指定分隔符~(concat_ws就是concat with separator)
语法:
concat_ws(separator, str1, str2, ...)
第一个参数指定分隔符。需要注意的是分隔符不能为null,如果为null,则返回结果为null。
GROUP_CONCAT
用于将group by产生的同一个分组中的值连接起来,返回一个字符串结果。
语法为:
group_concat( [distinct] 要连接的字段 [order by 排序字段 asc/desc ] [separator '分隔符'] )
通过使用distinct可以排除重复值;如果希望对结果中的值进行排序,可以使用order by子句;separator是一个字符串值,缺省为一个逗号。
EXISTS
EXISTS 运算符用于判断查询子句是否有记录,如果有一条或多条记录存在返回 True,否则返回 False。
语法为:
SELECT column_name(s)
FROM table_name1
WHERE EXISTS
(SELECT column_name FROM table_name2 WHERE condition);
table_name1 和 table_name2 一般情况是不同的表(也能一样),condition 里面是可以进行连表操作的
注:可以和 NOT 一起使用
参考
https://www.cnblogs.com/alex0702/p/10767005.html
https://www.cnblogs.com/duhuo/p/14829575.html