Yanıtlar:
Evet, kesinlikle, ama sentaksını kontrol et.
INSERT INTO courses (name, location, gid)
SELECT name, location, 1
FROM courses
WHERE cid = 2
gid
Tabii ki sadece 1 değil, yerine aynı türden bir sabit koyabilirsiniz . Ve sadece cid
değeri uydurdum .
OUTPUT
yan tümcesi var , bu da eklediğin her şeyi başka bir tabloya koymanı sağlıyor. MySQL'in eşdeğeri olduğunu düşünmüyorum. Sen belki geçici bir tablo oluşturmak doldurmak, sonra o tabloya seçmek, courses
o zaman gerekli başka ne olursa olsun geçici tablo kullanmak, o tablodan.
Evet öyle. Yazabilirsin :
INSERT INTO courses (name, location, gid)
SELECT name, location, 'whatever you want'
FROM courses
WHERE cid = $ci
ya da seçmenin başka bir birleşiminden değerler alabilirsiniz ...
Doğru Sözdizimi: yazımı seç yanlıştı
INSERT INTO courses (name, location, gid)
SELECT name, location, 'whatever you want'
FROM courses
WHERE cid = $ci
Tabii, gid için ne kullanmak istiyorsun? statik bir değer, PHP var, ...
1234 statik değeri şöyle olabilir:
INSERT INTO courses (name, location, gid)
SELECT name, location, 1234
FROM courses
WHERE cid = $cid
INSERT ifadenizin yanlış olduğunu düşünüyorum, doğru sözdizimine bakın: http://dev.mysql.com/doc/refman/5.1/en/insert.html
edit: Andrew zaten işaret ettiği gibi ...
Tabi ki yapabilirsin.
Ancak bir şey not edilmelidir: INSERT INTO SELECT
İfade bir tablodaki verileri kopyalar ve başka bir tabloya ekler VE kaynak ve hedef tablolardaki veri türlerinin eşleşmesini gerektirir. Belirtilen tablo sütunlarındaki veri türleri eşleşmezse (yani , içine veya içine VARCHAR
girmeye çalışırken ) MySQL sunucusu bir .INT
TINYINT
INT
SQL Error (1366)
Yani dikkatli ol.
Komutun sözdizimi şöyledir:
INSERT INTO table2 (column1, column2, column3)
SELECT column1, column2, column3 FROM table1
WHERE condition;
Yan Not: kullanarak hileli farklı sütun tipleri yerleştirme sorununa bir yolu yoktur casting Gözlerinde farklı SELECT
örneğin:
SELECT CAST('qwerty' AS CHAR CHARACTER SET utf8) COLLATE utf8_bin;
Bu dönüşüm ( CAST()
eşanlamlısıdır CONVERT()
), tablolarınız aynı tablo sütununda farklı karakter kümelerine sahipse çok kullanışlıdır (bu, düzgün bir şekilde ele alınmadığında veri kaybına neden olabilir).
Sorgunuz için doğru sözdizimi:
INSERT INTO courses (name, location, gid)
SELECT (name, location, gid)
FROM courses
WHERE cid = $cid