MySQL追加(附加)字符串到表中某text字段的所有行

本文介绍如何在MySQL中简单高效地将特定字符串追加到表中的Text字段所有行。利用concat()函数,无需使用复杂的游标即可完成任务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MySQL追加(附加)字符串到表中某text字段的所有行

来自http://tunps.com/mysql-append-string-on-text-field

上次说了SQL Server追加(附加)字符串到表中某text字段的所有行,那么对于MySQL该如何操作呢,其实远比SQLServer简单,根本用不到游标,需要一个函数:concat(),用法:

CONCAT(str1,str2,…)
返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。或许有一个或多个参数。 如果所有参数均为非二进制字符串,则结果为非二进制字符串。 如果自变量中含有任一二进制字符串,则结果为一个二进制字符串。一个数字参数被转化为与之相等的二进制字符串格式;若要避免这种情况,可使用显式类型 cast, 例如: SELECT CONCAT(CAST(int_col AS CHAR), char_col)

mysql> SELECT CONCAT('My', 'S', 'QL');

-> 'MySQL'

mysql> SELECT CONCAT('My', NULL, 'QL');

-> NULL

mysql> SELECT CONCAT(14.3);

-> '14.3'

所以我们的语句可以是:

update table1 set field1=concat(field1, 'str u wanna append' );
### PHP MySQL 更新字符串字段并拼接新字符串 在处理MySQL数据时,有时需要将现有记录中的字符串字段与新的字符串拼接后再更新到数据库中。这可以通过组合使用PHP和MySQL的内置函数来完成。 对于想要修改特定条件下的记录,并在其原有基础上追加额外的信息,可以采用如下方法: #### 使用 CONCAT 函数进字符串拼接 CONCAT 是 MySQL 提供的一个用于连接多个字符串的函数,在此场景下非常适合用来构建最终要存储的数据值。假设有一个名为 `hospital_vacc_screen_setting` 的,其中包含了一个 JSON 格式的列 `tips_content` ,现在希望把所有符合条件(例如 `hospital_id=45`)的记录里的 `"batchNo":true` 更改为 `"batchNo":false"` 并保存更改后的结果回到同一位置,则可以在 SQL 查询语句里这样写: ```sql UPDATE `hospital_vacc_screen_setting` SET `tips_content` = CONCAT( SUBSTRING(`tips_content`, 1, LOCATE('"batchNo":', `tips_content`) + LENGTH('"batchNo":') - 1), 'false', SUBSTRING(`tips_content`, LOCATE('true', `tips_content`) + LENGTH('true')) ) WHERE `hospital_id`=45 AND `tips_content` LIKE '%"batchNo":true%'; ``` 这段代码的作用是从原始字符串找到目标子串的位置,通过截取前后两部分再加入新的内容形成完整的JSON片段[^2]。 #### 结合PHP执上述操作 为了使这个过程自动化,可以从应用程序层面发起请求给服务器端脚本,该脚本负责建立同数据库之间的通信桥梁并将变更应用上去。这里给出一段简单的PHP示例程序展示如何做到这一点: ```php <?php $servername = "localhost"; $username = "username"; // 用户名 $password = "password"; // 密码 $dbname = "database_name"; // 数据库名称 // 创建连接 $conn = new mysqli($servername, $username, $password, $dbname); // 检查连接状态 if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } $sql = " UPDATE `hospital_vacc_screen_setting` SET `tips_content` = CONCAT( SUBSTRING(`tips_content`, 1, LOCATE('"batchNo":', `tips_content`) + LENGTH('"batchNo":') - 1), 'false', SUBSTRING(`tips_content`, LOCATE('true', `tips_content`) + LENGTH('true')) ) WHERE `hospital_id`=45 AND `tips_content` LIKE '\"batchNo\":true%' "; if ($conn->query($sql) === TRUE) { echo "Record updated successfully"; } else { echo "Error updating record: " . $conn->error; } $conn->close(); ?> ``` 以上就是利用PHP配合MySQL实现对指定条件下某条目内含有的字符串做适当调整的方式之一。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值