1

当我尝试朗姆酒查询时,我发现错误如下

#1267 - Illegal mix of collations (latin1_general_ci,IMPLICIT) and (latin1_swedish_ci,IMPLICIT) for operation '='

我的表结构是

CREATE TABLE `empregistration` (
  `id` int(100) NOT NULL auto_increment,
  `cname` text NOT NULL,
  `cpersonname` text NOT NULL,
  `roaddress` text NOT NULL,
  `txtcity` text NOT NULL,
  `txtstate` text NOT NULL,
  `txtcountry` text NOT NULL,
  `faxno` varchar(255) NOT NULL,
  `contactno` varchar(255) NOT NULL,
  `url` varchar(255) NOT NULL,
  `empCat` varchar(255) NOT NULL,
  `empno` varchar(255) NOT NULL,
  `ctype` varchar(255) NOT NULL,
  `establishyear` varchar(255) NOT NULL,
  `txtjobcategory` text NOT NULL,
  `cemailid` varchar(255) NOT NULL,
  `calteremailid` varchar(255) NOT NULL,
  `aboutcompany` text NOT NULL,
  `password` varchar(255) NOT NULL,
  `conpassword` varchar(255) NOT NULL,
  `empLogo` varchar(255) NOT NULL,
  `paymenttype` varchar(255) NOT NULL,
  `regDate` int(11) default NULL,
  `countViewProf` varchar(200) default '0',
  `cntDownProf` varchar(200) default '0',
  `cntJobPost` varchar(200) default '0',
  `cntupdatejob` varchar(200) NOT NULL default '0',
  `limitjobpost` varchar(200) NOT NULL default '0',
  `limitofupdatejob` varchar(200) NOT NULL default '0',
  `limitofviewcv` varchar(200) NOT NULL default '0',
  `limitofdowncv` varchar(200) NOT NULL default '0',
  `paymentforpostjob` varchar(200) NOT NULL default '0',
  `paymentforsearchcv` varchar(200) NOT NULL default '0',
  `takenPlan` varchar(255) default '0',
  `planDate` date default NULL,
  `takenplanforpostjob` varchar(200) NOT NULL default '0',
  `postjobplandate` varchar(200) NOT NULL default '0',
  `cntJobPost1` varchar(200) default '0',
  `cntupdatejob1` varchar(200) default '0',
  `status` varchar(255) NOT NULL default 'Active',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=214 ;

和其他表是

CREATE TABLE `blockedcompanies` (
  `blockedId` int(11) NOT NULL auto_increment,
  `empId` varchar(50) collate latin1_general_ci NOT NULL,
  `regId` int(11) NOT NULL,
  `jobSeekId` varchar(50) collate latin1_general_ci NOT NULL,
  `blockDate` date NOT NULL,
  PRIMARY KEY  (`blockedId`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=5 ;
4

2 回答 2

0

您没有显示您的查询,但我希望您在其中以某种方式使用“=”。现在您的默认排序规则似乎是瑞典语,并且您的“blockedcompanies”表具有 latin1_general 的排序规则。

该错误表示“隐式”,因此您没有在查询中使用排序规则。现在你必须比较不同的排序规则。你必须改变它使用COLLATE

检查这个:http ://dev.mysql.com/doc/refman/5.0/en/charset-collat​​e.html

于 2011-01-15T11:16:44.757 回答
0

创建表 empregistration 时,将最后一行从

) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=214 ;

) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=214 ;

并且您的查询应该开始工作。

于 2011-01-15T11:22:56.530 回答