Mysql SQL-将一个字段中的左300个字符复制到新字段中

Mysql SQL-将一个字段中的左300个字符复制到新字段中,mysql,sql,Mysql,Sql,我有一个很大的MySQL照片表,即使使用全文索引、普通索引和其他性能技巧,我发现我的查询速度也有点慢(糟糕的MySQL全文) 我有两个字段,一个叫做“caption”,另一个叫做“shortCaption”。“caption”字段包含500000行数据,长度介于150到2000个字符之间,新的“shortCaption”字段为空 “标题”字段中的可搜索信息大部分在前300个字符中,因此为了加快全文查询速度,我希望有一个仅包含前300个字符的“shortCaption”字段,以减少数据库/查询的工

我有一个很大的MySQL照片表,即使使用全文索引、普通索引和其他性能技巧,我发现我的查询速度也有点慢(糟糕的MySQL全文)

我有两个字段,一个叫做“caption”,另一个叫做“shortCaption”。“caption”字段包含500000行数据,长度介于150到2000个字符之间,新的“shortCaption”字段为空

“标题”字段中的可搜索信息大部分在前300个字符中,因此为了加快全文查询速度,我希望有一个仅包含前300个字符的“shortCaption”字段,以减少数据库/查询的工作量

在一个查询中,是否有一种方法可以遍历每个照片记录,获取前300个字符(长度(字段,300))并用较短的版本更新新字段?我正准备编写一个处理这个问题的服务器端脚本,但我很好奇是否可以纯粹用SQL来完成,因为这样会更快

提前谢谢

UPDATE tablename SET newfield = LEFT(oldfield, 300)
此查询将更新
tablename


此查询将更新
tablename

中的所有行可以尝试以下操作:

UPDATE table
SET new_column = left(old_column, 300);

我对我的一个测试表进行了测试,结果成功了。只需知道查询将需要一些时间来执行超过500K行。

可以尝试以下方法:

UPDATE table
SET new_column = left(old_column, 300);
UPDATE table1
SET column1 = LEFT( column2, 300 ) 

我对我的一个测试表进行了测试,结果成功了。只需知道查询将需要一些时间来执行超过500K行。

哦,天哪,我一定很累了,这太明显了!!谢谢tho:)哦,天哪,我一定累了,这太明显了!!谢谢,tho:)
UPDATE table1
SET column1 = LEFT( column2, 300 )