laravel中非法排序规则的混合

时间:2018-12-03 10:41:25

标签: mysql laravel collation

我一直在尝试在表中实现表情符号。我已经将列排序规则更改为utf8mb4_unicode_ci,其余的列排序规则为空,但是当我尝试查询出来时。出现这样的错误

  

SQLSTATE [HY000]:常规错误:1267操作'='的排序规则(utf8mb4_unicode_ci,IMPLICIT)和(utf8_unicode_ci,COERCIBLE)的非法混合(SQL:从qa_defect_comments中选择count(*)作为聚合,其中{ {1}} = 2957和defect_id = 2和logged_user_id =)

我们可以在查询数据期间设置排序规则吗?

编辑- 显示创建表qa_defect_comments

comments

类似于“ char%”的显示变量;

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

像“ coll%”一样显示变量;

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/

2 个答案:

答案 0 :(得分:0)

选中config/database.php。我认为您会在一个或两个位置找到utf8mb4的地方utf8

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

答案 1 :(得分:0)

我也面临着同样的问题。 我是通过以下方式解决的:

  1. 导航到phpMyadmin
  2. 选择您的应用程序正在使用的数据库
  3. 点击操作
  4. 选择排序规则:utf8_general_ci
  5. 单击Go

刷新了laravel配置缓存:

php artisan config:cache