在laravel中非法混合排序规则

cyvaqqii  于 2021-06-18  发布在  Mysql
关注(0)|答案(2)|浏览(364)

我一直在尝试在表中实现emoji。我已将列排序规则更改为 utf8mb4_unicode_ci 其余的列排序规则是空的,但是当我试图查询出它时。我犯了这样的错误
sqlstate[hy000]:常规错误:1267操作“=”(sql:选择count(*)作为聚合,从中非法混合排序规则(utf8mb4\u unicode\u ci,隐式)和(utf8\u unicode\u ci,可强制) qa_defect_comments 哪里 defect_id =2957和 logged_user_id =2和 comments = ??)
我们可以在查询数据时设置排序规则吗?
编辑-显示创建表qa\U缺陷\U注解

CREATE TABLE `qa_defect_comments` (
 `comments_id` int(11) NOT NULL AUTO_INCREMENT,
 `defect_id` int(11) NOT NULL,
 `project_id` int(11) NOT NULL,
 `comments` mediumtext COLLATE utf8mb4_unicode_ci NOT NULL,
 `logged_user_id` int(11) NOT NULL,
 `assign_user_id` int(11) NOT NULL,
 `created_at` datetime NOT NULL,
 `updated_at` datetime NOT NULL,
 `created_time` datetime NOT NULL,
 PRIMARY KEY (`comments_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1793 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC

显示变量,如“char%”;

character_set_client - utf8mb4
character_set_connection - utf8mb4
character_set_database - latin1
character_set_filesystem - binary
character_set_results - utf8mb4
character_set_server - latin1
character_set_system - utf8
character_sets_dir - /usr/share/percona-server/charsets/

显示“coll%”等变量;

collation_connection - utf8mb4_unicode_ci
collation_database - latin1_swedish_ci
collation_server - latin1_swedish_ci
nuypyhwy

nuypyhwy1#

我也面临同样的问题。我的解决办法是:
导航到phpmyadmin
选择应用程序正在使用的数据库
单击操作
选择排序规则:utf8\u general\u ci
点击go
刷新了laravel配置缓存:

php artisan config:cache
im9ewurl

im9ewurl2#

检查 config/database.php . 我想你会找到一个 utf8 在一两个地方,你应该有utf8mb4。

'mysql' => [..., 'charset' => 'utf8mb4', 'collation' => 'utf8mb4_unicode_ci', ...]

相关问题