标签: mysql-error-1267

非法混合的归类MySQL错误

我在处理大量数据时遇到这个奇怪的错误......

Error Number: 1267

Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='

SELECT COUNT(*) as num from keywords WHERE campaignId='12' AND LCASE(keyword)='hello again 昔 ã‹ã‚‰ ã‚ã‚‹ å ´æ‰€'
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能解决这个问题?我可以以某种方式逃避字符串,因此不会发生此错误,或者我是否需要以某种方式更改我的表格编码,如果是这样,我应该将其更改为什么?

mysql sql mysql-error-1267

112
推荐指数
3
解决办法
14万
查看次数

MySql中非法混合排序错误

刚刚从上一个问题得到了这个答案,它有效!

SELECT username, (SUM(rating)/COUNT(*)) as TheAverage, Count(*) as TheCount 
FROM ratings WHERE month='Aug' GROUP BY username HAVING TheCount > 4
ORDER BY TheAverage DESC, TheCount DESC
Run Code Online (Sandbox Code Playgroud)

但当我坚持这个额外的位时,会出现这个错误:

文档#1267 - 操作'='的非法混合排序(latin1_swedish_ci,IMPLICIT)和(latin1_general_ci,IMPLICIT)

SELECT username, (SUM(rating)/COUNT(*)) as TheAverage, Count(*) as TheCount FROM 
ratings WHERE month='Aug' 
**AND username IN (SELECT username FROM users WHERE gender =1)**
GROUP BY username HAVING TheCount > 4 ORDER BY TheAverage DESC, TheCount DESC
Run Code Online (Sandbox Code Playgroud)

该表是:

id, username, rating, month

mysql collation mysql-error-1267

41
推荐指数
4
解决办法
10万
查看次数

django字符集与MySQL怪异

我正在看

OperationalError (1267, "Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='")
Run Code Online (Sandbox Code Playgroud)

看起来我的一些变量是UTF8字符串

'name':'p\xc7\x9d\xca\x87\xc9\x9f\xc4\xb1\xc9\xa5s徽章'

这是配置问题吗?如果是这样,我该如何解决?我想处理Unicode中的所有内容(我认为).

mysql django django-models mysql-error-1267

21
推荐指数
2
解决办法
8921
查看次数

MYSQL区分大小写搜索utf8_bin字段

我创建了一个表并将排序规则设置为utf8,以便能够为字段添加唯一索引.现在我需要进行不区分大小写的搜索,但是当我使用collat​​e关键字执行一些查询时,我得到了:

mysql> select * from page where pageTitle="Something" Collate utf8_general_ci;
Run Code Online (Sandbox Code Playgroud)

ERROR 1253(42000):COLLATION'utf8_general_ci'对CHARACTER SET'latin1'无效

mysql> select * from page where pageTitle="Something" Collate latin1_general_ci;
Run Code Online (Sandbox Code Playgroud)

ERROR 1267(HY000):操作'='的非法混合排序(utf8_bin,IMPLICIT)和(latin1_general_ci,EXPLICIT)

我对SQL很新,所以我想知道是否有人可以提供帮助.

mysql sql case-sensitive character-encoding mysql-error-1267

18
推荐指数
1
解决办法
3万
查看次数

国际化使用utf8_encode()(php函数)的内容最佳实践

为了让网站接受用户提交的内容(可能不是英文版)(例如日文版)并将其保存到数据库中,最好是对所有新内容进行utf8_encode,并在以后检索时使用utf8_decode?

进一步的信息:我正在使用doctrine,我在尝试保存或选择Unicode字符到MySQL数据库时遇到错误:

SQLSTATE [HY000]:常规错误:1267操作'='非法混合排序(latin1_swedish_ci,IMPLICIT)和(utf8_general_ci,COERCIBLE)

mysql doctrine utf-8 mysql-error-1267

7
推荐指数
2
解决办法
2496
查看次数

django python整理错误

出现以下错误的原因是什么?当我尝试过滤:

if MyObject.objects.filter(location = aDictionary['address']):
Run Code Online (Sandbox Code Playgroud)

位置定义为:

location = models.CharField(max_length=100, blank=True, default='')
Run Code Online (Sandbox Code Playgroud)

当aDictionary ['address']包含带有非字母数字字符的字符串(例如Kīhei)时,我收到以下错误:

  File "/usr/lib/pymodules/python2.6/MySQLdb/connections.py", line 35, in defaul
terrorhandler
    raise errorclass, errorvalue
_mysql_exceptions.OperationalError: (1267, "Illegal mix of collations (latin1_sw
edish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='")
Run Code Online (Sandbox Code Playgroud)

python mysql django unicode mysql-error-1267

5
推荐指数
1
解决办法
1983
查看次数

mysql:错误代码[1267]; 操作'='的非法混合排序(latin1_general_cs,IMPLICIT)和(latin1_swedish_ci,IMPLICIT)

我想让password我的User表的列case sensitive在mysql中.

以下是该表的描述:

/*Table: mst_user*/

   FIELD          TYPE          COLLATION        
-------------  ------------  -----------------
user_id        VARCHAR(100)  latin1_swedish_ci
first_name     VARCHAR(25)   latin1_swedish_ci
last_name      VARCHAR(25)   latin1_swedish_ci
USER_PASSWORD  VARCHAR(50)   latin1_swedish_ci
user_status    INT(11)       (NULL)           
version_id     INT(11)       (NULL)           
active_status  INT(11)       (NULL)           
user_type      INT(11)       (NULL)    
Run Code Online (Sandbox Code Playgroud)

为了使USER_PASSWORD字段区分大小写,我执行以下查询:

ALTER TABLE `mst_user` MODIFY `USER_PASSWORD` VARCHAR(50) COLLATE `latin1_general_cs`;
Run Code Online (Sandbox Code Playgroud)

这种方法很有效,现在该字段区分大小写.

但我有一个存储过程,它SELECT在此表上执行查询以检查用户是否存在给定的凭据.

存储过程::

CREATE PROCEDURE `usp_password_verify`(ip_login_id         VARCHAR(200),
                                 ip_user_password    VARCHAR(200),
                                INOUT success     INT(1),
INOUT tbl_usr_password          VARCHAR(100),
INOUT  pkg_user_password         VARCHAR(100))
BEGIN
  SELECT COUNT(*)
    INTO success
    FROM mst_user
   WHERE UPPER (user_id) …
Run Code Online (Sandbox Code Playgroud)

mysql sql mysql-error-1267

1
推荐指数
1
解决办法
3万
查看次数