簡體   English   中英

是否可能基於MySQL的某一列上的選擇進行插入?

[英]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

如果列IDauto 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM