উত্তর:
হ্যাঁ, একেবারে, তবে আপনার বাক্য গঠনটি পরীক্ষা করুন।
INSERT INTO courses (name, location, gid)
SELECT name, location, 1
FROM courses
WHERE cid = 2
আপনি gid
অবশ্যই এটির জায়গায় একই ধরণের ধ্রুবক স্থাপন করতে পারেন , অবশ্যই 1 নয়, অবশ্যই। এবং, আমি সবেমাত্র cid
মানটি তৈরি করেছি ।
OUTPUT
ধারা রয়েছে , যা আপনাকে অন্য টেবিলে inোকানো যা কিছু দিতে দেয় lets আমি মনে করি না যে মাইএসকিউএলের একটি সমতুল্য আছে। আপনি একটি অস্থায়ী টেবিল তৈরি করতে পারেন , সেই টেবিলের মধ্যে নির্বাচন করুন, তারপরে courses
সেই টেবিলটি থেকে পপুলেট করুন, তারপরে আপনার যা যা প্রয়োজন প্রয়োজন তা টেম্প টেবিলটি ব্যবহার করুন।
হ্যাঁ, তাই তুমি লিখতে পারো :
INSERT INTO courses (name, location, gid)
SELECT name, location, 'whatever you want'
FROM courses
WHERE cid = $ci
বা আপনি নির্বাচিত অন্য যোগদানের থেকে মান পেতে পারেন ...
সঠিক সিনট্যাক্স: নির্বাচন বানান ভুল ছিল
INSERT INTO courses (name, location, gid)
SELECT name, location, 'whatever you want'
FROM courses
WHERE cid = $ci
অবশ্যই, আপনি গিডের জন্য কী ব্যবহার করতে চান? একটি স্থিতিশীল মান, পিএইচপি ভার, ...
1234 এর একটি স্ট্যাটিক মান এর মতো হতে পারে:
INSERT INTO courses (name, location, gid)
SELECT name, location, 1234
FROM courses
WHERE cid = $cid
আমি মনে করি আপনার INSERT বিবৃতিটি ভুল, সঠিক বাক্য গঠন দেখুন: http://dev.mysql.com/doc/refman/5.1/en/insert.html
সম্পাদনা: অ্যান্ড্রু ইতিমধ্যে চিহ্নিত হিসাবে ...
অবশ্যই আপনি করতে পারেন.
একটি বিষয় তবে উল্লেখ করা উচিত: INSERT INTO SELECT
অন্য টেবিলের মধ্যে এক টেবিলে থেকে বিবৃতি কপি ডেটা এবং এটা টিপে এবং প্রয়োজন উৎস এবং লক্ষ্য টেবিল ম্যাচে যে ধরনের তথ্য। যদি দেওয়া সারণী কলামগুলি থেকে তথ্য ধরনের মেলে না (অর্থাত সন্নিবেশ করার চেষ্টা VARCHAR
মধ্যে INT
বা, TINYINT
বা INT
মাইএসকিউএল সার্ভার একটি নিক্ষেপ করা হবে) SQL Error (1366)
।
তাই সতর্কতা অবলম্বন করা.
কমান্ডটির বাক্য গঠন এখানে রইল:
INSERT INTO table2 (column1, column2, column3)
SELECT column1, column2, column3 FROM table1
WHERE condition;
পার্শ্ব দ্রষ্টব্য: আপনার কাস্টিং ব্যবহার করে বিভিন্ন কলামের প্রকারের সন্নিবেশ সমস্যা থেকে বাঁচানোর একটি উপায় রয়েছে SELECT
, উদাহরণস্বরূপ:
SELECT CAST('qwerty' AS CHAR CHARACTER SET utf8) COLLATE utf8_bin;
যদি আপনার টেবিলগুলিতে একই টেবিল কলামে বিভিন্ন চরিত্র সেট থাকে (যা সঠিকভাবে পরিচালনা না করা হয় তবে ডেটা ক্ষতি হতে পারে) এই রূপান্তরটি ( CAST()
এর প্রতিশব্দ প্রতিশব্দ CONVERT()
) খুব কার্যকর।
আপনার প্রশ্নের জন্য সঠিক সিনট্যাক্সটি হ'ল:
INSERT INTO courses (name, location, gid)
SELECT (name, location, gid)
FROM courses
WHERE cid = $cid