MySQL中ID的生成集

MySQL中ID的生成集,mysql,Mysql,我有一个表,其中包含一些数据,我从中创建摘录: id data1 data2 data3 data4 ----------------------------- 1 foo bar baz foo 2 bar foo foo foo 1 foo doo goo omo id在该表中可能有多条记录。在给人们提供数据副本之前,我想用不同的东西替换所有标识符,但要保持记录的一致性。例如,id=1的所有记录在新表中仍应具有相同的

我有一个表,其中包含一些数据,我从中创建摘录:

id  data1  data2  data3  data4
-----------------------------
1   foo    bar    baz    foo
2   bar    foo    foo    foo
1   foo    doo    goo    omo
id在该表中可能有多条记录。在给人们提供数据副本之前,我想用不同的东西替换所有标识符,但要保持记录的一致性。例如,id=1的所有记录在新表中仍应具有相同的标识符

在SQL/MySQL中有没有一种有效的方法可以做到这一点?到目前为止,我唯一想到的是创建一个单独的ID表并以某种方式操纵原始ID

编辑

我想要的输出是:

AAA foo bar baz foo
BSF bar foo foo foo
AAA foo doo goo omo

本质上,我只需要混淆id部分,并用另一个在输出中一致的id替换它。i、 e.相同的源id将在输出中获得相同的替换id

您可以通过用salt散列原始值来生成唯一的*id。哈希函数的示例可以是,或

获取修改表的示例查询可以是:

SELECT SHA1(CONCAT('replace_this_here', id) AS id, data1, data2, data3, data4
FROM tablename
除非有人获得了您使用的salt(
'replace\u this\u here'
),否则很难找到一种方法轻松确定您的id,因此,如果您在那里使用随机字符串,您可以很好地隐藏原始id


*:不保证唯一,但不太可能获得两个匹配值。如果对更多信息感兴趣,请仔细阅读哈希冲突。

您只想隐藏id值,对吗?请提供您想要的输出示例。