我有以下问题。我有一个名为titles
以下结构的表:
id int(10),
name varchar(100),
稍后我们添加了一个名为 的新列modified_name
。它的定义与它相同,name
只是它是小写的,并且所有空格都替换为-
. 我们添加了这一列,因此我们现在需要在该列的每条记录中获取正确的修改名称值。为此,我们编写了一个 PHP 脚本,该脚本通过从数据库中加载值并处理它们来处理该问题,但这非常低效。是否可以编写一个UPDATE
查询,将正确的值添加到titles
表中的每条记录。我可以想办法用一个存储过程和一个while循环来做到这一点,但我想知道是否有可能更有效。它有任何方法可以实现以下目标:
UPDATE `titles`
SET
`modified_name` = LOWER(REPLACE(SELECT `name` FROM `titles` WHERE id = PRESENT_VALUE), ' ', '-');
目标是将表modified_title
中每条记录的列设置titles
为由该记录的列产生的唯一值,name
如下所示:
# Before modification update query
name = "Hello Goodbye"
modified_name = ""
# After modification update
name = "Hello Goodbye"
modified_name = "hello-goodbye"
感谢您的帮助,任何有关如何最好地做到这一点的建议将不胜感激。