[英]mysql complex update and replace
我有一個有趣的查詢,我想知道是否有人可以幫助您?
基本上,我有三個表,Title,Attribute和Attribute_Value
標題包含模板列表,例如“在{Category}中由{User}在{Date}上創建”,然后在Attribute表中,我有一些行,其中包含用大括號括起來的參數的定義。
然后在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},但是當替換{User}時,{Date}不是替換值,而是{Date},與{Category}相同。 但是當完成時,
關於如何在保留以前替換的值的同時用值更新“標題”列的任何想法?
干杯
加夫
如果屬性列表是靜態的,則可能會使用子查詢和嵌套的SQL REPLACE()。 否則,編寫您自己的SQL函數以遍歷所有可能的屬性名稱並進行替換。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.