mysql - 数据库 INSERT INTO SET ... WHERE(SELECT ...)

标签 mysql sql database prepared-statement database-agnostic

如果表中不存在针对 Admin_IdAdmin_User_Role_Id 值,我将尝试将我的值插入表中。可以插入吗!

我的表结构:

Admin_User_Id (FK)
Admin_User_Role_Id (FK)
Is_Enabled (boolean flag)

我尝试过查询,但没有成功

INSERT INTO role_association 
SET Admin_User_Id=61, Admin_User_Role_Id=2, Is_Enabled=0 
WHERE Admin_User_Role_Id 
NOT IN 
(SELECT Admin_User_Id, Admin_User_Role_Id FROM role_association)

我认为这是可能的,但我的逻辑是错误的。我应该如何管理这个查询才能成功工作!

最佳答案

INSERT 语法不能有 WHERE 子句。唯一一次您会发现 INSERT 有 WHERE 子句是当您使用 INSERT INTO...SELECT 语句时。

您可能会关心编程逻辑中的条件并编写一个简单的插入语句,然后根据您的逻辑使用此语句来插入记录。希望你明白我的意思。

关于mysql - 数据库 INSERT INTO SET ... WHERE(SELECT ...),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31980685/

相关文章:

php - 是否可以选择数据库中的两个表?

mysql - 复杂的mysql查询: sorting and pairing

sqlzoo "More Join"#15

php - 使用 XML 仅显示具有特定属性的产品

sql - 如何使用 SQL 在同一列中生成排列?

php - 无法在 PHP 中更新数据透视表

SQL SELECT FROM ... AS 与数据类型说明符?

mysql - laravel between two dates query error 语法错误

mysql - MySQL 中 .query() 和 .execute() 的区别

java - 如何使用 Java 从 blob 中插入和检索 pdf