php – 如何创建包含id列哈希的新列

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 如何创建包含id列哈希的新列脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个包含1列id的表.现在我想为我的表创建一个新列,所以我希望新列的数据是id的哈希值.这样的事情:

// my table
+------+
|  id  |
+------+
|  1   |
|  2   |
|  3   |
+------+

// I want this table
+------+------------+
|  id  |   hashed   |
+------+------------+
|  1   |  00320032  |
|  2   |  00330033  |
|  3   |  00340034  |
+------+------------+

应该注意,散列列基于:

hash(‘adler32′,’1’); //输出:00320032

hash(‘adler32′,’2’); //输出:00330033

hash(‘adler32′,’3’); //输出:00340034

现在,我可以这样做吗?

解决方法

在其他可能的方法中,您可以首先获取所有ID,计算每个ID的散列值,然后将可用日期重新插入表中(并避免重复:)

以下是有意义的(没有进行错误检查:)

<?PHP
// Adding the column named 'hashed'
$MysqLi->query('ALTER TABLE your_table ADD COLUMN (`hashed` INT);');

// Retrieving all the 'id's
$result = $MysqLi->query('SELECT id From your_table;');
$IDs = $result->fetch_all(MysqLI_ASSOC);
$result->close();

// AsSEMbling the values for a bulk INSERT statement
$values = array();
foreach($IDs as $row) {
    $ID = $row['id'];
    $hashed = hash('adler32',$ID);
    $values[] = "($ID,$hashed)";
}
$values = implode(',',$values);

// Delete to avoid duplicates
$MysqLi->query("DELETE From your_table;");

// Insert the 'id's and their resPEctive hashed values
$MysqLi->query("INSERT INTO your_table (id,hashed) VALUES $values;");

脚本宝典总结

以上是脚本宝典为你收集整理的php – 如何创建包含id列哈希的新列全部内容,希望文章能够帮你解决php – 如何创建包含id列哈希的新列所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。