很难解释,让我举个例子。
- 如果用户名 foo 已经存在于 MySQL 中,我希望 php 脚本允许它,但必须是 foo1
- 如果 foo1 也存在,脚本将生成用户名 foo2
- 如果 foo2 存在则变为 foo3
怎么做出来的?
赞Col. Shrapnel说 自然增量这似乎更明智。就像 Windows 中的“新建文件夹 (3)”一样
最佳答案
首先,锁定表,这样其他表就不会同时写入它。然后做这样的事情:
$name = 'foo';
$first_name = $name;
$i = 0;
do {
//Check in the database here
$exists = exists_in_database($name);
if($exists) {
$i++;
$name = $first_name . $i;
}
}while($exists);
//save $name
另一种方法是选择表中所有以“foo”开头并以数字结尾的名称,然后找到最大的数字。这可以在 SQL 中完成。
第一种方法更适合冲突风险很小的用例,因为模式匹配可能很慢,但如果冲突很多,则后者可能更好。
关于php - 如果重复,如何在用户名末尾添加额外的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4498886/