1."GROUP BY 1,2" 的含义
GROUP BY() 函数后面直接跟整数,比如 GROUP BY 1 或者 GROUP BY 1,2 这样的写法,它表示在 MySQL 中,使用列的位置来进行分组。例如 GROUP BY 1 就表示它将 使用第一列来进行分组,对应上面的力扣1050题就是 actor_id 这一列名。
同理,根据题目的要求,它是要找出合作过三次的演员和导演 id 对,即分组要把 actor_id 和 director_id 合起来作为筛选条件,所以 GROUP BY 1, 2 就是使用第一列和第二列分组。 不过这里需要 注意一点:GROUP 1,2 是按照 SELECT 语句中选择的列的顺序(这道题对应的顺序是 actor_id, director_id)进行分组的;如果列的顺序发生变化,还是盲目地使用 GROUP BY 1,2 来查询,就有可能得到 错误 的查询结果。
2.为什么要这么写?
这里大胆猜测他们这么写最简单的一个原因可能是简洁,或者说省时。毕竟数字确实比单词要写的更快。第二个原因可能是一定程度上可读性更高。 那么问题又来了:这样写和直接写列名的区别在哪里?