【问题标题】:ask about php summarize 01 + 01 = 02询问 php 总结 01 + 01 = 02
【发布时间】:2015-08-31 19:28:06
【问题描述】:

我想在数据库中创建一个 id

id_user => 数据类型'varchar'

我希望我的 id 以 000102 等开头。 为了生成新的id,我计算了所有的行,count的结果将加01。

例子:

$id=array(00,01,02);
$count_exist_id = $count($id)
$new_id= '00' + $count_exist_id

我希望新的 id 必须是 '03' 并且它将被存储到表用户列 id_user 的数据库中

【问题讨论】:

  • IDs 存储为开头没有0 的数字,然后在模板中的前端/末尾添加零。
  • 011 有何不同?
  • 好的,我需要制作 ID,它只制作三个代码,所以我可以在父母/根和孩子/离开之间做出不同
  • 如果你问我,以这种方式将父母和孩子联系在一起是一个非常糟糕的主意......这不是一种标准化的方法,肯定会导致进一步的麻烦。如果这种关系很重要,应该通过规范化来正式化......
  • @Bartdude 你能帮我用另一种方法来连接父母和孩子吗,我真的需要它来制作像家庭结构一样的树

标签: php mysql sql


【解决方案1】:

您可以使用INT(x) ZEROFILL,在数字前添加0。 '1' => '001'

使用 INT ZEROFILL,您拥有AUTO_INCREMENT。 ;)

CREATE TABLE user (
   id_user INT(8) UNSIGNED ZEROFILL NOT NULL AUTO_INCREMENT, 
   PRIMARY KEY(id_user)
);

如果你使用UNSIGNED,你优化你的表,你节省一个BIT,以获得更大的数字。

见:

【讨论】:

    【解决方案2】:

    更简单的方法是将下一个 id 计算为整数,然后将其填充为两个字符串:

    $id = array(00,01,02);-
    $count_exist_id = count($id);
    $new_id = str_pad($count_exist_id, 2, '0', STR_PAD_LEFT);
    

    【讨论】:

    • 感谢您的回答,我明白了,还有一个问题,我想让孩子来自 id,其中id_child = id_parent + 1 character 示例:id_parent = (00) 和 id_child 必须是 '001' || id_parent = (01) 和 id_child 必须是 '010','011','012'
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-09
    • 2018-02-04
    • 1970-01-01
    • 2023-03-03
    • 2016-07-23
    • 1970-01-01
    相关资源
    最近更新 更多