最近在Like查询中遇到一个问题。latin1_swedish_ci,IMPLICIT) and (utf8mb4_unicode_ci,COERCIBLE) for operation 'like' 我得到了这个问题的解决方案,但现在想要在laravel查询中进行转换。我如何在laravel的->where()中编写user.name LIKE _latin1 '%aaa%' COLLATE latin
我的搜索查询有COLLATE utf8mb4_bin,这是区分欧洲字符和非欧洲字符所必需的,例如a和ä。如果我用硬编码的搜索术语运行查询,它可以在phpmyadmin中运行,并且它可以在下面的上工作。您可以看到表中有CHARSET=utf8mb4 COLLATE utf8mb4_unicode_ci。但是,在另一个篡改站点( )上,相同的查询会出现错误:
COLLATION 'utf8mb4_bin' is not valid for CHARACTER SET
但是,多个结果将出现在查询中。尽管我知道您可以通过ALTER TABLE test DEFAULT COLLATE utf8_bin;设置表属性。但我认为更好的方法是通过查询添加条件SELECT * FROM test WHERE name = 'a' collate utf8_bin;。
现在我不知道如何在queryset方法中使用它。这个查询条件可以在Django的queryset方法中扩展吗?