Saya memiliki kueri yang menyisipkan menggunakan pilih:
INSERT INTO courses (name, location, gid)
SELECT name, location, gid
FROM courses
WHERE cid = $cid
Apakah mungkin untuk hanya memilih "nama, lokasi" untuk memasukkan, dan mengatur gid ke sesuatu yang lain dalam kueri?
mysql
sql
insert-select
Kyle
sumber
sumber
OUTPUT
klausa , yang memungkinkan Anda memasukkan apa pun yang Anda masukkan ke dalam tabel lain juga. Saya tidak berpikir MySQL memiliki padanan. Anda dapat membuat tabel sementara , pilih ke dalam tabel itu, lalu isicourses
dari tabel itu, kemudian gunakan tabel temp untuk apa pun yang Anda butuhkan.Ya itu. Kamu bisa menulis :
atau Anda bisa mendapatkan nilai dari gabungan lain dari ...
sumber
Sintaks yang Benar: pilih ejaan salah
sumber
Tentu, apa yang ingin Anda gunakan untuk gid? nilai statis, PHP var, ...
Nilai statis 1234 bisa seperti:
sumber
Saya pikir pernyataan INSERT Anda salah, lihat sintaks yang benar: http://dev.mysql.com/doc/refman/5.1/en/insert.html
sunting: seperti yang sudah ditunjukkan Andrew ...
sumber
Tentu saja Anda bisa.
Namun satu hal yang harus diperhatikan:
INSERT INTO SELECT
Pernyataan menyalin data dari satu tabel dan menyisipkannya ke tabel lain DAN mengharuskan jenis data dalam tabel sumber dan target cocok. Jika tipe data dari kolom tabel yang diberikan tidak cocok (yaitu mencoba memasukkanVARCHAR
ke dalamINT
, atauTINYINT
keINT
) server MySQL akan melemparSQL Error (1366)
.Jadi berhati-hatilah.
Berikut ini sintaks dari perintah:
Catatan: Ada cara untuk menghindari masalah penyisipan jenis kolom yang berbeda dengan menggunakan casting di Anda
SELECT
, misalnya:Konversi ini (
CAST()
adalah sinonim dariCONVERT()
) sangat berguna jika tabel Anda memiliki rangkaian karakter yang berbeda pada kolom tabel yang sama (yang berpotensi menyebabkan hilangnya data jika tidak ditangani dengan benar).sumber
Sintaks yang tepat untuk permintaan Anda adalah:
sumber