2011-10-04 59 views
0

我安裝了Magento 1.5.1.0,目錄中的某些產品在產品名稱的起始處有瑞典字符。這會導致按名稱排序時出現錯誤的排序。 A和A變爲A,和Ö變成O.Magento更改數據庫查詢排序規則

這意味着排序會像:

A 
Å 
Ä 
B 
[...] 

這是因爲數據庫被使用歸類utf8_general_ci。我發現你可以重寫MySQL在執行查詢時使用的排序規則,但是我找不到一個好的方法來將它放入Magento代碼中。這應該可以在Zend層面上完成嗎?

回答

0

轉到您的\app\etc\local.xml,找到default_setup部分並在其中添加<initStatements>標記(或者如果它已存在,則更改)。所以,它看起來像:

<default_setup> 
    <connection> 
     <host><![CDATA[your_host]]></host> 
     <username><![CDATA[user]]></username> 
     <password><![CDATA[password]]></password> 
     <dbname><![CDATA[db]]></dbname> 
     <initStatements><![CDATA[SET NAMES 'utf8' COLLATE 'utf8_unicode_ci']]></initStatements> 
     <model><![CDATA[mysql4]]></model> 
     <type><![CDATA[pdo_mysql]]></type> 
     <pdoType><![CDATA[]]></pdoType> 
     <active>1</active> 
    </connection> 
</default_setup> 
+0

我試過這個結果相同。嘗試重新啓動MySQL並清除所有緩存。 –

+0

愚蠢的問題,但你是否已將數據庫歸類從'utf8_general_ci'轉換爲'utf8_unicode_ci'? – Zyava

+0

剛剛在我們的開發服務器上嘗試過,'ALTER DATABASE DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci'但它沒有改變任何東西。 –

相關問題