0

我正在创建一个消息表,在实际的“消息”列中,一些记录有一个固定的短语,所以我的问题是,你怎么能只更改记录的一部分但大规模更改,所以说我想编辑 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);
?>
4

2 回答 2

2

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

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

我希望这有帮助!

于 2013-09-06T11:13:05.873 回答
0

好吧,我建议您考虑使用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.
于 2013-09-06T07:52:47.407 回答