12

これは機能しません:

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

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

4

8 に答える 8

29

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

update users set username='JACK' and password='123' WHERE id='1';
于 2010-02-28T03:44:10.873 に答える
14

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

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

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

この例では、2 番目の 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)
于 2015-09-18T15:49:38.040 に答える
2

これを試して:

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

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

Insert Into users (id, username, password) VALUES ('1', 'Jack','123');
于 2010-02-28T03:44:06.787 に答える
1
INSERT INTO users (id,username, password) 
VALUES ('1','Jack','123')
ON DUPLICATE KEY UPDATE username='Jack',password='123'

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

于 2010-02-28T04:00:29.920 に答える
1

挿入ではなくUPDATEを探していると思いますか?

UPDATE `users`
SET `username` = 'Jack', `password` = '123'
WHERE `id` = 1
于 2010-02-28T03:42:31.477 に答える
0
UPDATE users SET username='&username', password='&password' where id='&id'

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

于 2015-09-22T17:42:03.120 に答える
0

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

これを試して

UPDATE table_name SET username="",password="" WHERE id =""
于 2016-07-28T12:09:13.033 に答える