我们刚刚更改了一个Web应用程序中的一些功能,其中一个表中的每一行都需要添加新数据,数据是名称值的8个字符哈希值和当前时间戳。
我正在尝试更新2列,因为我们还需要交换到列,
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。
答案 0 :(得分:0)
如果您查看this answer中的第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;
注意,这将更新表格的所有行。