我有以下问题。我有一个名为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"
感谢您的帮助,任何有关如何做到这一点的建议都将受到赞赏。
答案 0 :(得分:1)
UPDATE `titles` SET `modified_name` = LOWER(REPLACE(`name`, ' ', '-'))