gpt4 book ai didi

mysql - INSERT INTO 语句的一些问题

转载 作者:行者123 更新时间:2023-12-01 00:43:31 25 4
gpt4 key购买 nike

我有这个 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com