自动在列中插入随机值

时间:2016-04-15 07:06:31

标签: php mysql codeigniter

我想在mysql中生成6位数的随机数。

例如,

我有一个名为 DATA 的表,列 job_name job_id 。 因此,当用户在 job_name 中插入值时, job_id 的值将是随机唯一数字,这将是自动存储在数据库中。

我一直在寻找这个,但无法从中得到任何东西。所以,请简要说明你的答案。

3 个答案:

答案 0 :(得分:1)

将job_id作为主键,并在数据库中使用Auto Increment。 这样你只需要插入job_name,它就会自动增加名称。 Auto Increment

P.S。这不是随机的,但它不应该是随机的原因吗?否则你必须制作一个不断编写随机数字的脚本,并将它们与数据库进行比较,直到它还没有存在。

如果您真的希望随机选中此post

我真的建议你不要这样做,也许有一天你会用完ids,如果你把它限制在6个字符,就会陷入无限循环。

答案 1 :(得分:0)

在表格中使用2个字段。一个是您的AUTO_INCREMENT job_id和另一个新字段:job_unique_id。 您可以使用mysql UUID函数在该列中插入唯一的随机值。从你的标签看起来你似乎正在使用codeigniter。在codeigniter中,使用以下代码生成唯一标记:

$data = array(
    'name' => 'full name'
);
$this->db->set('job_unique_id', 'UUID()', FALSE);
$this->db->insert('my_table',$data);

点击此链接了解详情:http://dev.mysql.com/doc/refman/5.7/en/miscellaneous-functions.html#function_uuid

答案 2 :(得分:0)

尝试此查询

INSERT INTO `DATA`(`job_id`, `job_name`) VALUES (ROUND((RAND() * (999999-100000))+100000),'php developer')