如何在MySQL Insert语句中添加where子句?

Zac*_*ack 7 mysql insert where-clause

这不起作用:

INSERT INTO users (username, password) VALUES ("Jack","123") WHERE id='1';
Run Code Online (Sandbox Code Playgroud)

任何想法如何通过id缩小插入到特定行?

bro*_*chb 21

在一个插入语句中,你不会有一个现有的行来做一个claues on?你正在插入一个新行,你的意思是做一个更新声明吗?

update users set username='JACK' and password='123' WHERE id='1';
Run Code Online (Sandbox Code Playgroud)

  • "你不会有一个现有的行去做一个claues on?" 完美答案. (2认同)
  • 我想对表的其余部分执行 where 子句。例如“插入...其中 count(..) < 10”。 (2认同)

ger*_*tra 10

通常在MySQL脚本中使用的条件插入是:

insert into t1(col1,col2,col3,...)
select val1,val2,val3,...
  from dual
 where [conditional predicate];
Run Code Online (Sandbox Code Playgroud)

你需要使用虚拟表双.

在此示例中,只有第二个insert-statement实际上会将数据插入表中:

create table t1(col1 int);
insert into t1(col1) select 1 from dual where 1=0;
insert into t1(col1) select 2 from dual where 1=1;
select * from t1;
+------+
| col1 |
+------+
|    2 |
+------+
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)


Jon*_*han 6

简单地在 INSERT 语句中添加 WHERE 子句;

INSERT INTO table_name (column1,column2,column3)
SELECT column1, column2, column3 FROM  table_name
WHERE column1 = 'some_value'
Run Code Online (Sandbox Code Playgroud)