2009-10-14 41 views
5

Có thể sử dụng truy vấn "chọn" bên trong truy vấn "Chèn" hay không, nhưng điều kiện là tôi muốn sử dụng cùng một tên bảng cho cả "chọn" và Truy vấn "Chèn".
Ví dụ
mysql> insert into sample_elements (name,position,ownerel) values ('Namespace1', select id from sample_elements where name='Namespace1',0);Sử dụng truy vấn chọn bên trong truy vấn Chèn cho cùng tên bảng

Vui lòng hướng dẫn tôi về điều này.

Trả lời

16

Thay đổi chèn của bạn để trông giống như sau:

insert into sample_elements (name,position,ownerel) select 'Namespace1',id,0 from sample_elements where name='Namespace1'; 

Về cơ bản thay vì sử dụng các giá trị chỉ sử dụng câu lệnh lựa chọn và chèn các giá trị harcoded như cột

2

Tôi nghĩ bạn có thể làm điều đó. Bạn có thể sử dụng:

INSERT INTO table (..fields) SELECT ..fields.. FROM table; 
0

Tôi không biết mysql nhưng bạn có thể thử cách sau không?

insert into sample_elements select name, id, 0 from sample_elements where name='Namespace1' 
0

Tôi không chắc chắn. Tôi nghĩ rằng chèn này bên trong lựa chọn cho việc tìm kiếm đã tồn tại hoặc cho mục đích gì.

Cảm ơn

-1

đây là định dạng khác sẽ hoạt động, sử dụng cấu trúc 'SET'. Tôi thích định dạng này cho hầu hết SQL của tôi vì tên trường được ghép nối với các giá trị - giúp bảo trì dễ dàng hơn nhiều so với danh sách trường/giá trị phụ thuộc hoàn toàn vào vị trí.

INSERT INTO sample_elements SET 
name = 'Namespace1', 
position = (SELECT id FROM sample_elements WHERE name='Namespace1'), 
ownere1 = 0; 
+0

-1 Giải pháp này không hoạt động đối với MySQL, mà OP rõ ràng đang sử dụng. Xem câu trả lời này: http://stackoverflow.com/a/14302701/998919 – fgblomqvist

+0

nó hoạt động trên mySQL, đó là nơi tôi đã sử dụng nó. Xin vui lòng làm rõ nơi/làm thế nào nó không hoạt động, như tôi nghĩ rằng bạn sẽ tìm thấy nó thực hiện của bạn/phiên bản/trình điều khiển đó là vấn đề, không mySQL. kính trọng –

+0

Tôi đã chỉ định rồi, hãy kiểm tra câu trả lời tôi đã liên kết. Vui lòng nêu rõ phiên bản của cơ sở dữ liệu MySQL mà bạn đã thử ít nhất. – fgblomqvist

Các vấn đề liên quan