[英]is insert based on select on one of the column in MySQL possible?
在MySQL可能基於列之一的選擇之后進行插入
INSERT INTO student_fees(id, name, fees)
VALUES(1, SELECT name from students where student_id = 1, 200$)
如果是的話,那么例子將真的有幫助。
-謝謝
嘗試INSERT...SELECT
語句
INSERT INTO student_fees(id, name, fees)
SELECT ... -- put here the SELECT STATEMENT with condition
如果列ID
是auto incremented
,則不必指定1
,否則將導致錯誤。
INSERT INTO student_fees(name, fees)
SELECT `name`, '200$'
FROM students -- this will select all students on the table
-- and add $200 on thier fees.
另一點是,如果您只想從student
表中插入一列,則需要指定條件,這樣就不會出現約束錯誤( 假設您的列ID是主鍵 )
INSERT INTO student_fees(name, fees)
SELECT `name`, '200$'
FROM students
WHERE columnName = 'blahBlah'
更新1
看到您的評論,您有此查詢
INSERT INTO coupon_allotment (page_id, offer_id, coupon_code, user_id)
SELECT page_id, 4, 'ABC' -- number of columns mismatch, right?
FROM pages_discounts_association
WHERE discount_id = 4
您需要刪除上方的user_id
列,或者您需要在select語句中添加 ID
以匹配列數。
只需使用常規的INSERT INTO ... SELECT
語法並選擇其他字段作為常量,如下所示:
INSERT INTO student_fees(id, name, fees)
SELECT 1, `name`, '200$' FROM students
嘗試這個:
INSERT INTO student_fees(id, name, fees)
Select 1, name,'200$' from students
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.