我有一个名为 testing 的表,其中包含一个MEDIMTEXT
类型的列。
mysql> desc testing;
+-------+------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+------------+------+-----+---------+-------+
| id | tinyint(4) | YES | | NULL | |
| data | mediumtext | YES | | NULL | |
+-------+------------+------+-----+---------+-------+
2 rows in set (0.00 sec)
表格内容就像——
mysql> select * from testing;
+------+--------------------------------+
| id | data |
+------+--------------------------------+
| 1 | This is the first data entered.|
+------+--------------------------------+
1 row in set (0.00 sec)
在以 id=1 命名的列data
中,我想连接另一个字符串 ex- “Concat me”,使其看起来像“这是输入的第一个数据。Concat me”
我可以通过使用
UPDATE testing SET data=CONCAT(data,'Concat me') WHERE id=1;
但我认为它会首先读取整个字段,然后进行连接,最后将新制作的字符串替换为前一个字符串。
如果文本太长,这样做会花费很多时间。
like-如果有15 MB
文本和10 bytes
要连接的文本,则将读取 15 MB,然后连接 10 个字节的数据,然后写回 15 MB + 10 个字节的数据。
我想问是否存在任何其他方法以便将要连接的字符串添加到最后而不是替换完整的?
所以只有10个字节被写入数据库。
可能是我错了,mysql 将管理命令以使其有效工作。