2012-08-30 51 views
0

我使用geoloaction找到用戶的當前位置,它返回的XML數據非法混用整理mysql錯誤?

<geonames> 
    <geoname> 
     <toponymName>Gulbahar</toponymName> 
     <name>Golīmar</name> 
     <lat>24.8922</lat> 
     <lng>67.0287</lng> 
     <geonameId>1346867</geonameId> 
     <countryCode>PK</countryCode> 
     <countryName>Pakistan</countryName> 
     <fcl>P</fcl> 
     <fcode>PPLX</fcode> 
     <distance>0.14608</distance> 
    </geoname> 
</geonames> 

現在我想<name>Golīmar</name>具有特殊字符和名稱的基礎上,我要運行查詢,以獲取更多除了這一個結果,但它會產生某種覈對錯誤

SELECT DISTINCT country 
FROM propertydetails 
WHERE country NOT IN ("Golīmar") 

Error:Illegal mix of collations (latin1_swedish_ci,IMPLICIT) AND (utf8_general_ci,COERCIBLE) FOR operation

我見過很多棧POS但無法找到一個方法來解決

+1

檢查表的歸類:SHOW CREATE TABLE propertydetails;然後,您可能必須將排序規則從latin1切換到utf-8或數據庫連接本身。讓我知道你的表格編碼是什麼。 – Parallelis

+0

SHOW CREATE TABLE propertydetails;此命令顯示錶名沒有其他詳細信息 –

回答

0

我已經

SELECT DISTINCT country 
FROM propertydetails 
WHERE country NOT IN (_latin1 "Golīmar") 

解決了我的上述問題和字符集和兩個連接和表latin1的排序規則,latin1_swedish_ci

0

您的表排序規則和您的連接排序規則不匹配足以使查詢工作。確保它們都是相同的,最好是utf8_general_ci

+0

您的連接校對?我不能得到這個,你可以解釋更多關於這個 –

+0

[MySQL文檔,§10.1.4,「連接字符集和排序」](http://dev.mysql.com/doc/refman/5.1/en/charset-connection .html) –

+0

我的字符集是utf8,排序規則設置爲utf8_general_ci –