php - 如果不是非主行的副本,则sql查询仅更新

标签 php mysql sql

我在 php 中有一个非常简单的 SQL 查询。在有人创建了他们的用户名后,他们可以将其编辑为其他内容。

$uName_str = "UPDATE users SET users.username = '{$newUserName}' WHERE users.username = '{$oldUserName}';

但我不希望他们能够将自己的用户名更新为与其他人相同的用户名。主键是用户 ID。我可以运行一个单独的查询来查找所有用户名,然后将新选择的用户名与用户名数据库进行比较,但是对一件事进行完全单独的查询似乎效率不高。有什么方法可以将其写成单个查询,以防止任何重复的条目吗?

最佳答案

在用户名列上创建唯一索引。然后在更新时检查错误/异常。

关于php - 如果不是非主行的副本,则sql查询仅更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21315474/

相关文章:

php - 商店开门和关门时间,开门时显示关门

mysql - 如何在命令行中使用mysql使id字段自动递增?

java - 如何在 Spring 和 Hibernate 中保存当前用户的信息?

sql - 查找 (Oracle) SQL 中的最后一个重复行

PHP LDAP 连接

php - 使用 axios 的 API 请求总是未经 Laravel API 授权

php - WordPress "save_post"操作问题

php - 带有 UNION 的限制性 WHERE IN SQL 语句

java - <EOF>创建 Derby 表时出现异常

php - 使用爆炸过滤数组