大规模编辑 MySQL 表记录的一部分


Editing Part of MySQL Table Records on a Mass Scale

我正在创建一个消息表,在实际的"消息"列中,一些记录有一个固定的短语,所以我的问题是,你怎么能只更改记录的一部分但大规模,所以说我想编辑 3000 条记录?

例如,我可能希望将记录从以下内容更改为:

我刚刚找到了一个非常棒的链接,请在此处查看<b><a href="website.php">Link</a></b>

看看我刚刚在<b><a href="webiste.php">Link</a></b>找到的这个链接

因此,换句话说,如何仅更改"查看我刚刚找到的此链接"部分而不是实际链接?

我尝试使用替换,但不确定这是否正确:

<?php
$replace_text_sql = "SELECT message REPLACE('message','I just found a really great link, take a look at it here','Check out this link I just found at') FROM posts WHERE type = 'promoted'";
$replace_text_res = mysqli_query($con, $count_posts_sql);
?>

我在这里找到了解决您问题的好方法。不幸的是,我没有可用的虚拟数据库,我可以自己尝试一下,但它应该可以解决您的问题:

UPDATE posts SET message = REPLACE (message, 'I just found...', 'Check out this...')

我希望这有帮助!

好吧,

我建议您查看使用 UPDATE 语句

单表语法:

UPDATE [LOW_PRIORITY] [IGNORE] table_reference
    SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] ...
    [WHERE where_condition]
    [ORDER BY ...]
    [LIMIT row_count]

您可能还想查看REPLACE(str,from_str,to_str)

返回字符串 str 以及字符串的所有匹配项from_str 替换为字符串to_str。

REPLACE() 执行区分大小写 搜索from_str时匹配。

mysql>选择

REPLACE('www.mysql.com', 'w', 'ww');

    -> 'WwWwWw.mysql.com' This function is multi-byte safe.