2010-02-28 21 views
7

Bu işe yaramazsa:MySQL Insert ifadesinde bir where cümlesi nasıl eklenir?

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

herhangi bir fikir nasıl id belirli bir satıra ekleme daraltmak için?

+2

Downvoted. Öyle olduğu gibi, başlık yanlış veya kabul edilen cevaptır. Her neyse, Google beni * insert * için yönlendiriyor, ancak kabul edilen cevap * güncelleme * hakkında. –

cevap

18

bir ekleme açıklamada, bir yerde yapmak Mevcut bir satırı olmazdı: aslında eklemeye çalışıyorsanız

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

Veya:

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

"Nerede bir yerde yapmak için varolan bir satır olmaz?" Mükemmel cevap. –

+1

Tablonun geri kalanında bir cümle yapmak istiyorum. E.g '... sayın (..) <10 '. –

1

Sanırım UPDATE'u arıyor ve eklemek istemiyor musunuz?

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

bu deneyin claues açık? Yeni bir satır ekliyorsunuz, bir güncelleme ifadesi mi yapmak istiyorsunuz?

update users set username='JACK' and password='123' WHERE id='1'; 
0
INSERT INTO users (id,username, password) 
VALUES ('1','Jack','123') 
ON DUPLICATE KEY UPDATE username='Jack',password='123' 

id alan/pk tektir Bu sadece çalışır (değil kompozit PK gerçi) Ayrıca, bu değerin 1 hiçbir id bulunursa takıp id 1 ile aksi kaydını güncelleyecektir eğer varsa.

3

Sadece INSERT deyiminin içine WHERE yan tümcesi eklemek için;

INSERT INTO table_name (column1,column2,column3) 
SELECT column1, column2, column3 FROM table_name 
WHERE column1 = 'some_value' 
+0

er, burada neler olup bittiğine dair biraz bilgi ekleyebilir misiniz? Eklemin neden bir WHERE'ye ihtiyacı var? – Martin

+1

Kimin umurunda * neden *? Soru şu oldu: "MySQL Insert ifadesinde bir cümle nasıl eklenir?" * –

8

tipik bir MySQL komut kullanılmak üzere şartlı insert olacaktır: Sen kukla tablo ikili kullanmaya gerek

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

.

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) 
+1

Bu kabul edilen cevap olmalı. +1 –

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

Bu sorgu kullanıcı adı, şifre ve dinamik kimliği

+0

Bu sorgu, kullanıcı adı, parola ve kimlik bilgilerini dinamik olarak girmenizi ister –

0

girmek isteyecektir:

Bu örnekte, yalnızca ikinci insert-ifadesi aslında tabloya veri eklemek olacaktır

Boş satır için yukarıdaki maddeye nasıl değerler ekleyebileceğimiz (

Bu deneyin

UPDATE table_name SET username="",password="" WHERE id ="" 
İlgili konular