MySQL 常用函数

concat(str1, str2,…)

date_sub(curdate(), interval 7 day)

substring(str, start, len)

3.1. 从字符串的第 4 个字符位置开始取,直到结束

image.png

3.2 从字符串的倒数第 4 个字符位置开始取,直到结束

image.png

3.3 从字符串的第 4 个字符位置开始取,只取 2 个字符

image.png

3.4 从字符串的倒数第 4 个字符位置开始取,只取 2 个字符

image.png

substring_index(str, ‘>’, 2)

4.1. 截取第二个 ‘.’ 之前的所有字符

image.png

4.2. 截取倒数第二个 ‘.’ 之后的所有字符

image.png

GROUP_CONCAT

测试数据表
image.png

以 product_id; 分组,把 name 字段的值打印在一行,逗号分隔 (默认)
SELECT id,GROUP_CONCAT(name) FROM test_brand GROUP BY product_id;
image.png

  • group_concat () 有长度限制 1024, 需要修改配置 group_concat_max_len,如果超过大小会被截断
  • 排序 GROUP_CONCAT (name ORDER BY id DESC)
  • 当你用 group_concat 的时候请注意,连接起来的字段如果是 int 型,一定要转换成 char 再拼起来,否则在你执行后 (ExecuteScalar 或者其它任何执行 SQL 返回结果的方法) 返回的将不是一个逗号隔开的串,而是 byte []

COUNT 等聚合函数

count 不会统计 null:

  • count(t.aae140 = ‘390’ or null)
  • count(case when region_stat.city_num > 0 and prov_stat.city_num > city_stat.city_num then 1 end)

获取当前时间戳

1
UNIX_TIMESTAMP(NOW(3)) * 1000