Mysql

使用 SQL 重命名表中所有出現的 HTML 類名

  • June 16, 2021

在 CMS 的 MYSQL 數據庫中,所有出現的特定 HTML 類名都應預先固定。假設感興趣的表是table_article,並且該表中的 HTML 程式碼是這樣的:

<div>
 <p class="myclass someotherclass1 someotherclass2">Some text.</p>
 <p class="someotherclass1 myclass someotherclass2">Some more text that contains the class name not as class, but as text: myclass</p>
</div>

因此,SQL 語句應該將類名“myclass”重命名為“prefix-myclass” ,只要它可能作為 HTML 類名出現,但當它不是類名時不重命名字元串的出現:

<div>
 <p class="prefix-myclass someotherclass1 someotherclass2">Some text.</p>
 <p class="someotherclass1 prefix-myclass someotherclass2">Some more text that contains the class name not as class, but as text: myclass</p>
</div>

這種操作的 SQL 語句是什麼?

編輯:HTML 類可能不僅出現在

標籤,它們可以出現在每個可能的 HTML 標籤中。

SELECT html,
      REGEXP_REPLACE(html, '(<p .*class.*"| )myclass(.*[^p]>)', '$1prefix-myclass$2')
FROM test

https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=e675fc3259589daa5231996b506553a4

引用自:https://dba.stackexchange.com/questions/294366