web-dev-qa-db-ja.com

MySQL Insertステートメントにwhere句を追加するにはどうすればよいですか?

これは機能しません:

INSERT INTO users (username, password) VALUES ("Jack","123") WHERE id='1';

IDによって特定の行に挿入を絞り込む方法はありますか?

7
Zack

挿入ステートメントでは、where clausを実行するための既存の行がありませんか?新しい行を挿入していますが、ステートメントを更新するつもりでしたか?

update users set username='JACK' and password='123' WHERE id='1';
23
broschb

通常MySQLスクリプトで使用する条件付き挿入は次のようになります。

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

ダミーテーブルデュアルを使用する必要があります。

この例では、2番目の挿入ステートメントのみが実際にデータをテーブルに挿入します。

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)
11
gerrit_hoekstra

INSERTステートメント内にWHERE句を追加するだけです。

INSERT INTO table_name (column1,column2,column3)
SELECT column1, column2, column3 FROM  table_name
WHERE column1 = 'some_value'
4
Jonathan

これを試して:

Update users
Set username = 'Jack', password='123'
Where ID = '1'

または、実際に挿入しようとしている場合:

Insert Into users (id, username, password) VALUES ('1', 'Jack','123');
2
Nick Craver

私はあなたが探していると思います [〜#〜] update [〜#〜] そして挿入しませんか?

UPDATE `users`
SET `username` = 'Jack', `password` = '123'
WHERE `id` = 1
1
jasonbar

空の行の場合、where句に値を挿入する方法

これを試して

UPDATE table_name SET username="",password="" WHERE id =""
0
Prasad MCN
INSERT INTO users (id,username, password) 
VALUES ('1','Jack','123')
ON DUPLICATE KEY UPDATE username='Jack',password='123'

これは、idフィールドがunique/pkの場合にのみ機能します(ただし、複合PKではありません)。また、値1のidが見つからない場合は挿入され、それ以外の場合はid1(存在する場合)。

UPDATE users SET username='&username', password='&password' where id='&id'

このクエリでは、ユーザー名、パスワード、IDを動的に入力するように求められます

0
RajeeV VenkaT