我有 2 张桌子 - 旧的和新的。
从 ID 5000 到 ID 10000,我需要将旧表中的数据导入到新表中。
假设需要导入“名称”和“密码”。
在旧表中,用户没有被散列!我如何导入名称和密码但确保导入的密码经过哈希处理,即:“$P$B .....”(wordpress 哈希)?这可以通过 SQL 查询来完成吗?
我有 2 张桌子 - 旧的和新的。
从 ID 5000 到 ID 10000,我需要将旧表中的数据导入到新表中。
假设需要导入“名称”和“密码”。
在旧表中,用户没有被散列!我如何导入名称和密码但确保导入的密码经过哈希处理,即:“$P$B .....”(wordpress 哈希)?这可以通过 SQL 查询来完成吗?
如果您只是使用 MySQL 本身具有的哈希值,例如 md5,您可以执行类似的操作
INSERT INTO NewTable (ID, Name, Password)
SELECT ID, Name, md5(Password) AS Password
FROM OldTable
WHERE ID BETWEEN 5000 to 10000
如果您需要使用与 MD5 不同的散列,请查看 MySQL 的文档以了解它们还支持什么。如果它像您所说的那样是自定义的,Word Press 的哈希(我不知道他们使用什么),您将不得不在 PHP 中运行每一个并手动转换它们。
您可以执行以下操作
INSERT INTO new_table (col1, password, ..., coln)
SELECT col1, MD5(password), ..., coln
FROM old_table
WHERE ID BETWEEN 5000 to 10000;
请参阅MySQL Password Hashing available。
阅读更多