我需要生成一个员工ID,例如:E13001,该号码应该自动递增,当下一年到来时,它应该是E14001(年份是2014年)。它应该每年从001开始。我尝试使用yy
格式,但序列号从前一年开始。我怎么想改变序列号生成?帮我。提前致谢。
答案 0 :(得分:0)
嗯,除了整数之外,MySQL中列的自动增量不起作用。它也会随着每个字段递增。
要做你想做的事,你需要将id和year分开(对于mysql表)。所以你得到一个id为id的表,emp_id(不应该由db管理,没有AUTO-INCREMENT)和年份。然后选择max(emp_id),其中year ='2014',因此在添加新员工时,您将增加该值。为了按照您需要的方式获得员工身份,您应该将拖车柱合并为一个并从一年中卸下第一个拖车柱。
你应该知道这会成为一个分布式的e_id,每次你需要使用它时,你需要做额外的工作。但是你保留了你需要的格式。
希望这可以帮助您了解如何完成。
答案 1 :(得分:0)
您好,您可以尝试以下方式
<?php
$connection = mysqli_connect("localhost","root","")
or die("no connection");
$db_select=mysql_select_db("test",$connection)
or die("no connection to db");
$query3 = "SELECT * FROM simple";
$result3 = mysqli_query($query3);
$count = mysql_num_rows($result3);
if($count == 0)
{
$year = date('y');
$seq = 1;
$a = sprintf("%04d", $seq);
$emp_id = E.$year.$a;
$query= "INSERT INTO simple (emp_id) VALUES ('$emp_id')";
$result=mysqli_query($query)or die(mysql_error());
}
else
{
$query2 = "SELECT * FROM simple ORDER BY id DESC LIMIT 1";
$result2 = mysqli_query($query2);
$row = mysql_fetch_array($result2);
$last_id = $row['emp_id'];
$rest = substr("$last_id", -4);
$insert_id = "$rest" + 1;
echo $ars = sprintf("%04d", $insert_id);
$year = date('y');
$emp_id = E.$year.$ars;
$query= "INSERT INTO simple (emp_id) VALUES ('$emp_id')";
$result=mysqli_query($query)or die(mysql_error());
}
希望此代码可以帮助您。