2012-07-22 57 views
1

在運行MySQL 5.0.27,與使用替換非常簡單的查詢服務器 -MySql的替代查詢功能僅評估一次,而不是對每一行

SELECT familyname, replace('{0} test' , '{0}', `familyname`) AS `formattedname` 
FROM family 

我得到的結果,其中第二列僅被評估一次:

familyname formattedname 
Andersen  Andersen test 
Baker  Andersen test 
Charles  Andersen test 

在運行MySQL 5.5.9開發機器,同樣的查詢和數據,結果如我所期望的:

Andersen  Andersen test 
Baker  Baker test 
Charles  Charles test 

這是舊版本的MySql錯誤,還是有其他可能性(服務器配置錯誤,索引錯誤等)?

謝謝!

+1

正常工作[** here **](http://www.sqlfiddle.com/#!2/3d476/3/0)。 「familyname」列的數據類型是什麼? – 2012-07-22 00:38:53

+0

sqlfiddle使用mysql 5.5和錯誤顯然只發生在5.0 – Vatev 2012-07-22 00:46:35

+0

@Vatev,哦,我誤讀了,我沒有看到OP正在運行5.0.27。 – 2012-07-22 00:50:34

回答

1

這是一個已知的錯誤。據報道有here
您可以隨身攜帶,或者您至少需要升級到MySQL 5.1。

如果你的軟件兼容,爲什麼不升級到MySQL 5.5?

我在Mysql bugs數據庫中發現了使用search engine的錯誤報告。

+0

謝謝;我搜索了錯誤列表,但使用了較差的搜索條件。 – 2012-07-22 02:14:20