2012-09-03 14 views
5

table1(id, col2, col3) demek, ben id 1 tüm verileri çoğaltmak istiyorum ama farklı olan id (id otomatik sütun oluşturulmaz) 11 söylerler.MySQL: SQL ekleme sorgusu aynı tablodaki verileri çoğaltmak için bir tablo var

INSERT INTO table1(
id, 
col2, 
col3 
) 
VALUES (

SELECT 11 , col2, col3 
FROM table1 WHERE id=1 
) 
+0

Ve? Hangi hatayı aldın? – BugFinder

+0

# 1064 - SQL sözdiziminizde bir hata var; Doğru sözdizimi – gmuhammad

+0

için MySQL sunucu sürümünüze karşılık gelen kılavuzu kontrol edin Sorun: "VALUES" anahtar sözcüğünü kullanmayın ... "insert ekle ... seç –

cevap

8

"VALUES" kullanmayın kelime

INSERT INTO table1(
id, 
col2, 
col3 
) 


SELECT 11 , col2, col3 
FROM table1 
WHERE id = 1 

DÜZENLEME:

doğru sütun adları ile çalışıyorsanız

Kontrol:

DESC table1; 
+0

+ 1 'de Bilinmeyen sütun' col2 'alma, bu çalışma yapmak için id = 1 nerede yan tümce tümce gereksinim duyduğunu belirttikten sonra – davidethell

+0

VALUES anahtar sözcüğü kaldırıldı, ancak hala çalışmıyor Şimdi # 1054 hatası alıyorsunuz - "alan listesindeki" Bilinmeyen sütun 'col2' ' – gmuhammad

+0

@ gmuhammad Eğer' 11, col2, col3 tablo1'den seçerseniz ne olur? –

2

Kullanım INSERT INTO ... SELECTWHERE id = 1 ile:

INSERT INTO table1(id, col2, col3) 
SELECT '1' + id , col2, col3 
FROM table1 
WHERE id = 1 
2

INSERTVALUES veya SELECT, ikisini birden alır bana (vererek sözdizimi hatası) için çalışmıyor aşağıdaki sql sorgu yazdım.

INSERT INTO table1(id, col2, col3) 
SELECT 11 , col2, col3 
FROM table1 
WHERE id = 1 
3

bu deneyin :

INSERT INTO table1(
id, 
col2, 
col3 
) 
SELECT 11 , col2, col3 
FROM table1 
WHERE table1.id = 1 

VEYA daha böyle bir şey gerekiyorsa: ne şekilde bu işe yaramamıştır içinde

INSERT INTO table1(id, col2, col3) 
SELECT (SELECT MAX(id) FROM table1) + 1 , col2, col3 
FROM table1 
İlgili konular