非法混合排序mysql错误?

时间:2012-08-30 05:14:38

标签: php mysql database mysqli

我正在使用geoloaction来查找返回xml数据的用户的当前位置

<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" )
  

错误:非法混合归类(latin1_swedish_ci,IMPLICIT)AND   (utf8_general_ci,COERCIBLE)操作

我已经看到很多堆叠pos但无法找到解决方法

2 个答案:

答案 0 :(得分:0)

您的表格排序规则和连接排序规则不匹配,无法使查询正常工作。确保它们都相同,最好是utf8_general_ci

答案 1 :(得分:0)

我已经通过

解决了我的上述问题
SELECT DISTINCT country
FROM   propertydetails
WHERE  country NOT IN ( _latin1 "Golīmar" )

以及latin1latin1_swedish_ci

的连接和表格的字符集和排序规则