根据其他字段的内容生成唯一的MySQL字段

时间:2010-09-15 20:07:33

标签: mysql function

在创建独特的自定义引用代码(即JOB1293XYZ)一段时间之后,我一直在PHP中生成自定义引用/哈希值,然后检查我的数据库以查看它是否已存在,如果是,则生成另一个。

我很好奇,如果在MySQL中可以根据该行中的其他字段生成字段的内容,我将是一个方便的快捷方式。例如......

表:员工

  • EMPLOYEEID
  • 的firstName
  • lastName的
  • JOBTITLE
  • DOB
  • employeeCode

因此,对于employeeCode,我可以使用MySQL自定义函数(我知之甚少)来生成该字段的内容。也许通过取名字的第一个字母,第二个名字的第一个字母,职称的str长度和DOB的最后两位数字?这纯粹是一个例子。

如果这是可能的,并且任何人都可以向我指出任何非常好的参考资料,那些已经涉及到沉重的MySQL文档,并将暂时继续这样做。

提前致谢!

1 个答案:

答案 0 :(得分:2)

您可以将所有字段连接在一起,并在结果字符串上执行MD5。

UPDATE Employees SET md5str = MD5(CONCAT(field1,field2,field3))...

我不推荐这种方法,因为如果你有一个哈希冲突怎么办的问题,如果不是不可能回答那就很困难。

上述想法不是我的:我在maatkit代码中发现了这一点。