MySQL 闲杂知识点
1. MySQL concat
我们使用MySQL中的concat链接字符串函数的时候,如果链接的字段中有一个NULL值的话,我们最后出来的结果就是NULL,显然这不是我们想要的。我们可以使用coalesce函数来对NULL值初始化。
1 | SELECT `atfcapi`.`tb_api_trace`.`git_version`, |
具体可以参考 http://stackoverflow.com/questions/8530632/concat-values-in-mysql-queryto-handle-null-values
2. MySQL 查询当天数据
1 | SELECT * |
1 | SELECT * |
3. MySQL count(*) count(1) count([列名])
Count(1)和Count(*)实际上的意思是,评估Count()中的表达式是否为NULL,如果为NULL则不计数,而非NULL则会计数。比如我们看如下代码所示,在Count中指定NULL(优化器不允许显式指定NULL,因此需要赋值给变量才能指定)。
1 | DECLARE @x3x INT |
因此当你指定Count(*) 或者Count(1)或者无论Count(‘anything’)时结果都会一样,因为这些值都不为NULL。对于Count(列)来说,同样适用于上面规则,评估列中每一行的值是否为NULL,如果为NULL则不计数,不为NULL则计数。因此Count(列)会计算列或这列的组合不为空的计数。