mysql - ON DUPLICATE KEY UPDATE - 将文本添加到现有值上

标签 mysql

假设我有这个专栏:“来源”。在“来源”中我已经写了“你好”。当我在数据库中上传某些内容时,我希望保存以前的值,并且我将添加到我已有的值上,因此该行会显示“你好,那里”

我有这个查询,但它只适用于数学中的添加:

try{
    $sql = "INSERT INTO total_lb (ssn,date_added,first_name,last_name,company,address,co,zip,city,phone_1,phone_2,phone_3,phone_4,email,source)
    VALUES (:ssn, :date_added, :first_name, :last_name, :company, :address, :co, :zip, :city, :phone_1, :phone_2, :phone_3, :phone_4, :email, :source)
    ON DUPLICATE KEY UPDATE
    source=source + values(source)";
    $query = $newpdo->prepare($sql);
    $query->execute(array(
                        ':ssn' => $ssn,
                        ':date_added' => $date_added,
                        ':first_name' => $firstname,
                        ':last_name' => $lastname,
                        ':company' => $company,
                        ':address' => $address,
                        ':co' => $co_address,
                        ':zip' => $zip,
                        ':city' => $city,
                        ':phone_1' => $phone_1,
                        ':phone_2' => $phone_2,
                        ':phone_3' => $phone_3,
                        ':phone_4' => $phone_4,
                        ':email' => $email,
                        ':source' => $source
                        ));

                        }catch(PDOException $e){
                            echo"<br>" . $e->getMessage();
                        }

如何将单词添加到列中现有的文本中?

我已经看过类似的帖子:ON DUPLICATE KEY UPDATE - add to existing value但它只涵盖数学

最佳答案

由于您尝试加入文本,我将使用类似的内容(我正在添加完整的示例)

CREATE TABLE IF NOT EXISTS `test_tbl` ( 
    `id` INT (11) UNSIGNED NOT NULL AUTO_INCREMENT, 
    `value` VARCHAR(255),
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;

INSERT INTO `test_tbl` (`id`,`value`) VALUES (1, 'This is a ');

INSERT INTO `test`.`test_tbl` (`id`, `value`) VALUES (1, 'test') 
    ON DUPLICATE KEY UPDATE `value`=CONCAT(`value`, VALUES(`value`));

诀窍是在重复项中使用 CONCAT。

希望能有所帮助,
利隆

关于mysql - ON DUPLICATE KEY UPDATE - 将文本添加到现有值上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34393296/

相关文章:

PHP 函数不返回 TRUE - 但它是

mysql - 如何在phpmyadmin中清空mysql数据库

mysql - 连接表而不获取不匹配的记录

Mysql order by string of part OR Symbol after some int

mysql - 如何设置查询不接受不存在的字段

php - CodeIgniter如果用户名存在则通过用户名获取用户信息,如果不存在则通过userID获取

MySQL 查询返回 false,但执行正确

mysql - SQL 在表中查找日期范围差距

mysql - 更改 Docker 容器中的 mysql 密码

php - 如何在 JOIN 语句中使用 CASE 根据条件连接两个表?