使用行中的数据回顾性更新mysql列
我们刚刚更改了一个web应用程序中的一些功能,其中一个表中的每一行都需要添加新数据,数据是名称值和当前时间戳的8个字符哈希 我正在尝试更新2列,因为我们还需要切换到周围的列使用行中的数据回顾性更新mysql列,mysql,database,sql-update,Mysql,Database,Sql Update,我们刚刚更改了一个web应用程序中的一些功能,其中一个表中的每一行都需要添加新数据,数据是名称值和当前时间戳的8个字符哈希 我正在尝试更新2列,因为我们还需要切换到周围的列 UPDATE projects SET uri_hash = (SELECT slug FROM projects WHERE id = 79), slug = MD5(SHA1(CONCAT( CURRENT_TIMESTAMP, ( SELECT name FR
UPDATE projects
SET uri_hash = (SELECT slug FROM projects WHERE id = 79),
slug = MD5(SHA1(CONCAT(
CURRENT_TIMESTAMP, (
SELECT name FROM projects WHERE id=79
)
))
我做错了什么,基本上我希望uri_hash的值等于slug列,然后我希望MD5和SHA1加密当前时间戳和名称值,并将其分配给slug。如果查看中的第4点,并假设id是表中的主键,则以下操作应该有效:
UPDATE projects p1, projects p2
SET p1.uri_hash = p1.slug, p1.slug=MD5(SHA1(CONCAT(CURRENT_TIMESTAMP,p2.name)
WHERE p1.id=p2.id;
注意,这将更新表中的所有行