簡體   English   中英

連接2個表時mysql中的錯誤

[英]bugs in mysql when connecting 2 table

當我嘗試朗讀查詢時,我發現類似的錯誤

#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 ;

您沒有顯示查詢,但是我希望您以某種方式在其中帶有“ =”的位置進行查詢。 現在,您的默認排序規則似乎是瑞典語,並且您的“ blockedcompanies”表具有對latin1_general的排序規則。

該錯誤顯示為“隱式”,因此您沒有在查詢中使用排序規則。 現在您必須將不同的排序規則進行比較。 您必須使用COLLATE進行更改

檢查一下: http : //dev.mysql.com/doc/refman/5.0/en/charset-collat​​e.html

創建表注冊時,將最后一行從

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

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

並且您的查詢應該開始工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM