2

我有以下问题。我有一个名为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"

感谢您的帮助,任何有关如何最好地做到这一点的建议将不胜感激。

4

1 回答 1

1
UPDATE `titles` SET `modified_name` = LOWER(REPLACE(`name`, ' ', '-'))
于 2012-11-09T19:40:15.877 回答