作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有这个 mysql 语法:
INSERT INTO `utilizatori`(
utilizator
)
SELECT
'Mama'
FROM
`utilizatori`
WHERE
NOT EXISTS (SELECT `utilizator` FROM `utilizatori` WHERE utilizator='Mama')
utilizatori
是一个表,utilizator
是一个列,Mama
是一个值
只有当值不存在时,此语法才会在表中插入一个值。如果该值存在,它不会创建它,所以直到现在它工作正常,但如果没有 'Mama' 值,那么它会插入它.. .唯一的问题是它会多次插入。例如,如果我有 4 行,它将插入“Mama”值 4 次,创建 4 行。有什么想法吗??
最佳答案
通过使 utilizator
字段唯一
,我会让任务更容易、更清晰。
这样,当您为 utilizator
添加具有现有值 'Mama'
的新行时,在这种情况下:mysql 返回错误代码:1062
,并且不要让用户在表中有多个包含 Mama
的行。
所以当你运行查询时:
INSERT INTO `utilizatori` (utilizator) VALUES ('Mama')
您可以检查 MySQL
是否返回任何错误,但最好检查受影响的行数,如果插入成功它将等于 1
否则 0
。
检查机制取决于您使用什么语言和驱动程序连接到数据库。
因为您选择了 PHP
标签,您可能正在使用 PDO
而不是
$statement->rowCount(); // $statement = PDOStatement, I assume you know this thing well
会给你想要的结果
最后一个简单的例子:
...
if ($statement->rowCount())
{
echo "Cool! You have been added to database";
}
else
{
echo "Hmms! Are you trying to duplicate something?";
}
关于mysql - INSERT INTO 语句的一些问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26011490/
我是一名优秀的程序员,十分优秀!