簡體   English   中英

MySQL搜索和替換(相似文本-不准確)

[英]MySQL Search and Replace (Similar Text - Not Exact)

我要替換為:

~ <a href="xxxx">Download</a>

與:

<div class="down"> ~ <a href="xxxx">Download</a> </div>

大約有300-350個地方會重復出現“ DOWNLOAD字。 xxx不是常數,它每次都會更改,並且超級鏈接也會每次更改...

是否可以使用任何SQL查詢來做到這一點? 如果在SQL中不可能,可以在php中完成嗎?

怎么樣:

UPDATE MyTable 
SET MyField = REPLACE(MyField, 
                      '~ <a href="xxxx">Download</a>', 
                      '<div class="down"> ~ <a href="xxxx">Download</a> </div>')

好的,如何替換"xxxx"周圍的所有內容:

UPDATE MyTable 
SET MyField = 
REPLACE(
  REPLACE(MyField, 
          '~ <a href=', 
          '<div class="down"> ~ <a href'),  
  '</a>', 
  '</a> </div>')

那么使用str_replace()的PHP方法呢?

<?php

$string = '~ <a href="xxxx">Download</a>';

$string = str_replace('~ <a href="xxxx">Download</a>', '<div class="down"> ~ <a href="xxxx">Download</a> </div>', $string);

echo $string;

在HTML源代碼中,Echo的以下內容為:

<div class="down"> ~ <a href="xxxx">Download</a> </div>

另外:

$link = "page.php";

$string = '~ <a href="xxxx">Download</a>';

$string = str_replace('~ <a href="xxxx">Download</a>', '<div class="down"> ~ <a href="'.$link.'">Download</a></div>', $string);

echo $string;

HTML來源:

<div class="down"> ~ <a href="page.php">Download</a></div>

從表中獲取行,並使用類似以下的內容。

foreach($result as $row)
{
   echo '<div class-="down"><a href = "'. $row['xxxx'] .'" >Download</a></div>';
}

MySQL具有REGEXP運算符,但僅適用於“匹配”,不適用於替代。

這樣的表達式:

REPLACE(
  REPLACE(col, 
    , '~ <a href="'
    , '<div class="down"> ~ <a href="'
  )
  , '">Download</a>'
  , ">Download</a> </div>'
)

可能會達到您想要的結果, 但是兩個替換將獨立完成。 也就是說,字符串中'~ <a href="' 所有實例,而不僅僅是Download之后的實例。

我強烈懷疑這對您確實不起作用,因為我懷疑您需要對之執行此操作的列包含這些相同字符串的其他實例,無需替換。


暫無
暫無

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

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