mysql多表查询1267报错
const books = await mysql('books')
.select('books.*','csessioninfo.user_info')
.join('csessioninfo','books.openid','csessioninfo.open_id')
// .orderBy('id','desc')
code: 'ER_CANT_AGGREGATE_2COLLATIONS', errno: 1267, sqlMessage: 'Illegal mix of collations (utf8mb4_0900_ai_ci,IMPLICIT) and (utf8mb4_unicode_ci,IMPLICIT) for operation \'=\'', sqlState: 'HY000', index: 0, sql: 'select `books`.*, `csessioninfo`.`user_info` from `books` inner join `csessioninfo` on `books`.`openid` = `csessioninfo`.`open_id`' } +1ms
执行上边的代码报错1267,不知道什么原因造成的?
自己在数据库执行也是这个错误
mysql> select `books`.*, `csessioninfo`.`user_info` from `books` inner join `csessioninfo` on `books`.`openid` = `csessioninfo`.`open_id`
-> ;
ERROR 1267 (HY000): Illegal mix of collations (utf8mb4_0900_ai_ci,IMPLICIT) and (utf8mb4_unicode_ci,IMPLICIT) for operation '='
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
从报错信息上可以看出,是
books
表和csessioninfo
的排序规则不一致导致的。你可以修改books
表,将排序规则改为utf8mb4_unicode_ci
。