我有一個有趣的查詢,我想知道是否有人可以幫忙?mysql複雜更新和替換
基本上,我有三個表,標題,屬性和ATTRIBUTE_VALUE
標題包含了像「由{用戶}在{類別}創建於{日期}」然後在屬性表,我有模板列表包含大括號內包含參數定義的行。
然後在attribute_value表中,我有值。
我遇到的問題是,查詢似乎沒有存儲每行的替換,直到查詢完成,這意味着行只接收最後一次更新,不完整。
update Title inner join Attribute_Value on Attribute_Value.GenericID = Title.CollectibleID and Attribute_Value.GenericType = 'collectible' inner join Attribute on Attribute.AttributeID = Attribute_Value.AttributeID set Title.Title = replace(Title.Title, concat('{', Attribute.Name, '}'), Attribute_Value.Value)
所以基本上,它會取代{}日期正確,但是當它去取代{用戶},{DATE}不是替代價值,但仍然{}日期與{}類相同。但是當它完成時,我想知道如何使用值更新Title列,同時保持以前替換的值嗎?
乾杯
GAV株系
您需要爲模板中的每個值加入一次Attribute_value - 在此情況下爲3次。每個加入都會覆蓋一個值。 – Martin 2010-10-10 21:08:34
@Martin,屬性名稱/值和標題都是完全通用的。那幾乎不可能處理。 – Gavin 2010-10-10 21:34:51
同意。我認爲最簡單的解決方案是在應用程序中進行替換:檢索模板,提取屬性列表,然後檢索屬性,最後執行替換。 – Martin 2010-10-11 06:20:54