关于 MySQL 的三个小问题
之前曾经写过MySQL的一个小问题,就是 MySQL 如果采用的字符集是 utf8 的话,emoji 的话,是存不进去的,因为历史原因 MySQL 的 utf8 不是真正的 utf8,utf8mb4 才是真正的 utf8,所以在创建数据库的时候编码集推荐选择 真正的 utf8mb4。今天就再写两个小问题: allowMultiQueries=true 前一段时间同事有个需求,使用 mybatis 的时候,在同一个 mapper 方法中需要同时执行两个 MySQL 语句,当时同事说他把 SQL 拷贝出来执行都没有问题,但是在代码中执行就是报错,让我帮忙看一下原因,当时听他描述,我大概猜到了,然后一看果然就是在一个 mapper 方法中同时执行两个 SQL 语句,在 MySQL 的连接中加上 allowMultiQueries=true 搞定。 MySQL8.0 中 group by 报错的问题 可能因为我一直在互联网公司的原因,所以在我的职业生涯中,一直都是 MySQL,前几年在 MySQL8.0 还没成为主流,主流还是使用 5.6 的时候,有个刚入职不久的同事问如下的语句: select a, b from t_test group by a 说不报错吗?当时我很懵,不报错啊,代码中很多地方我也一直这么写啊,然后同事说他之前用 oracle 是不行的,然后到 MySQL5.7 之后,发现 MySQL 默认也不能这么写了,其实解决起来也很简单。 第一种方案: 修改 MySQL 的语句: select a from t_test group by a 或者: ...