使用CONCAT编写UPDATE语句

时间:2014-09-26 21:36:10

标签: mysql concatenation

我有通过PMA进行的更新。这似乎很简单,但可能不是。我附上了数据库表和相关字段的图像。

enter image description here 这是一个包含90000条记录的数据库表。 "别名"中的一些记录列正是我需要的结果。例如,在图像中,id的743971,743961和743951是完美的。我希望更新别名'带有ID列匹配编号的列,用连字符连接,并以小写形式连接。例如 - 在图像中......第二条记录需要来自" ponder"的别名更新。成为"思考-743981"。

有没有办法用CONCAT进行UPDATE,可以忽略正确的记录,更新不正确的记录。 (忽略该图像中的第一个ID,没有别名记录为空。)感谢您提供任何帮助!

1 个答案:

答案 0 :(得分:1)

此查询只会更新错误的别名列

update mytable set alias = concat(lower(replace(imgtitle,' ','-')),'-',id)
where alias <> concat(lower(replace(imgtitle,' ','-')),'-',id)

但是你需要保存别名列吗?

select * , concat(lower(replace(imgtitle,' ','-')),'-',id) alias
from mytable