簡體   English   中英

mysql復雜的更新和替換

[英]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}相同。 但是當完成時,

關於如何在保留以前替換的值的同時用值更新“標題”列的任何想法?

干杯

加夫

您可以編寫一個存儲過程 ,該過程使用光標一次更新“ Title的屬性。

如果屬性列表是靜態的,則可能會使用子查詢和嵌套的SQL REPLACE()。 否則,編寫您自己的SQL函數以遍歷所有可能的屬性名稱並進行替換。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM