2010-02-28 86 views
7

này không hoạt động:Làm thế nào để thêm mệnh đề where vào một câu lệnh chèn MySQL?

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

Bất kỳ ý tưởng làm thế nào để thu hẹp chèn một hàng cụ thể bằng id?

+2

Bị bỏ qua. Khi nó đứng, tiêu đề là sai, hoặc câu trả lời được chấp nhận. Dù sao, Google dẫn tôi đến đây để * chèn *, nhưng câu trả lời được chấp nhận là về * cập nhật *. –

Trả lời

18

Trong một tuyên bố chèn bạn sẽ không có một hàng hiện có để làm một nơi claues trên? Bạn đang chèn một hàng mới, ý của bạn là làm một bản cập nhật?

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

"bạn sẽ không có một hàng hiện tại để làm một nơi mà claues trên?" Câu trả lời hoàn hảo. –

+1

Tôi muốn thực hiện mệnh đề where ở phần còn lại của bảng. Ví dụ: 'chèn ... trong đó đếm (..) <10'. –

1

Tôi nghĩ bạn đang tìm kiếm UPDATE và không chèn?

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

Hãy thử điều này:

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

Hoặc nếu bạn đang thực sự cố gắng để chèn:

Insert Into users (id, username, password) VALUES ('1', 'Jack','123'); 
0
INSERT INTO users (id,username, password) 
VALUES ('1','Jack','123') 
ON DUPLICATE KEY UPDATE username='Jack',password='123' 

này sẽ chỉ làm việc nếu trường id là duy nhất cái/hộp (không composit PK dù) Ngoài ra, việc này sẽ chèn nếu không id của giá trị 1 được tìm thấy và cập nhật nếu không thì kỷ lục với id 1 nếu nó tồn tại.

3

Để thêm mệnh đề WHERE trong câu lệnh INSERT đơn giản;

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

er, bạn có thể thêm một số thông tin về những gì đang xảy ra ở đây không? Tại sao chèn cần một WHERE? – Martin

+1

Ai quan tâm * tại sao *? Câu hỏi là * "Làm thế nào để thêm mệnh đề where vào câu lệnh Chèn MySQL?" * –

8

Một chèn có điều kiện để sử dụng thông thường trong một kịch bản MySQL sẽ là:

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

Bạn cần phải sử dụng bảng giả kép.

Trong ví dụ này, chỉ có chèn-tuyên bố thứ hai sẽ thực sự chèn dữ liệu vào bảng:

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

Đây phải là câu trả lời được chấp nhận. +1 –

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

Truy vấn này sẽ yêu cầu bạn nhập tên người dùng, mật khẩu và id động

+0

Truy vấn này sẽ yêu cầu bạn nhập tên người dùng, mật khẩu và id động –

0

Đối với hàng trống, cách chúng tôi có thể chèn các giá trị vào mệnh đề đó

Hãy thử điều này

UPDATE table_name SET username="",password="" WHERE id ="" 
Các vấn đề liên quan