简而言之,我有一个PHP表单,要求输入员工ID,电子邮件和密码,以将用户添加到可以正常工作的数据库中。
数据库中的表还具有“名字”和“姓氏”字段。
由于以表格形式询问fname和lname的权力太过远了,所以我想拆分员工id,以便至少填充fname。姓氏我们也不必太在意,因为它毕竟不是唯一的。
简而言之,每个员工ID由相同的格式组成,即名字后跟数字(即John12345,Mark67890(每个员工ID的5位数字,名字后)。我想将员工ID插入数据库中,同时,在第一个数字(或最后一个字母)处拆分并填充名字(只要完整的员工ID即可清除字符串拆分的其余部分)被插入到employee_id中)。
我读到MySQL中没有拆分功能,因此我试图找出实现此目的的最佳方法。
答案 0 :(得分:0)
您必须按如下所示使用向左和向右功能:
SET @employee = 'Employee12345';
SELECT RIGHT(@employee ,5), LEFT(@employee, LENGTH(@employee)-5);
因为员工号代码是5位数字,所以您可以使用此代码。 如果要插入另一个表,则必须使用INSERT INTO SELECT语句,如下所示:
Insert into _newtable Select RIGHT(_employee ,5), LEFT(_employee, LENGTH(_employee)-5) FROM _oldtable;
_employee是您的旧表字段。
答案 1 :(得分:0)
我使用的方法比此处提出的解决方案好得多:
我在电子邮件字段上使用了php explode(强制为firstname.lastinitial
$email = "myemail@someemail.com";
$firstname = explode(".", $email)[0];
$lastname = explode("@", explode(".", $email)[1])[0];
$username = $firstname . " " . $lastname;