代码之家  ›  专栏  ›  技术社区  ›  SkyeBoniwell

将多个更新语句合并到一个更新中

  •  0
  • SkyeBoniwell  · 技术社区  · 5 年前

    我有一个sql server 2012数据库,其中有一个表,其中包含一个名为“gameRoomText”的列,数据如下:

    <p>
    <img id="4e" style="margin: 5px" 
    title="GameFiles/1854/4e.jpg (media placeholder image)" 
    src="../images/nothing_null.png" 
    alt="GameFiles/1854/4e.jpg (media placeholder image)" 
    width="320" height="380" /></p>
    

    我需要删除包含以下文本的所有行:

    src=“../images/nothing\u null.png”

    所以我首先去掉字符串(媒体占位符图像):

    update gameList
    set gameText = replace(gameText, ' (media placeholder image)', '')
    where gameID = '1854'
    and tileID = '0FE'
    and gameText LIKE '%src="../images/nothing_null.png"%'
    

    update gameList
    set gameText = replace(gameText, 'src="../images/nothing_null.png" ', '')
    where gameID = '1854'
    and tileID = '0FE'
    

    现在我将“alt”标记更改为“src”标记:

    update gameList
    set gameText = replace(gameText, 'alt=', 'src=')
    where gameID = '1854'
    and tileID = '0FE'  
    

    最后,我将“../”添加到新的“src”标记路径中,如下所示:

    update gameList
    set gameText = replace(gameText, 'src="', 'src="../')
    where gameID = '1854'
    and tileID = '0FE'  
    

    这些工作,但我想知道是否有办法将这4个更新语句合并为一个,这样我只需要为每个游戏平铺“tileID”和游戏“gameID”运行一个更新语句,可能有这些问题。

    谢谢!

    0 回复  |  直到 5 年前
        1
  •  2
  •   Element Zero    5 年前

    您可以链接replace语句,但它会很快变得混乱。例如:

    update gameList
    set gameText = replace(replace(replace(replace(gameText, ' (media placeholder image)', ''), 'src="../images/nothing_null.png" ',''), 'alt=', 'src='), 'src="', 'src="../')
    where gameID = '1854'
    and tileID = '0FE'
    and gameText LIKE '%src="../images/nothing_null.png"%'