2012-05-26 164 views
2

目前使用MySQL數據庫SQL INSERT INTO選擇

婉婷在我這裏的另一個table (t_1)條件中插入新行插入table (t_2)爲每一個匹配的條目。

我還希望爲每個條目(來自表計數器的計數)和每個條目的字符串值'減少'包含來自單獨表的計數值。不知道如何通過把這個,這是我到目前爲止有:

INSERT INTO t_2(count,id,val='decrease') 
SELECT MAX(count) as count FROM counter 
SELECT id FROM t_1 WHERE val < 0 

我得到的錯誤是:

1064 - 你在你的SQL語法錯誤;檢查對應於你的MySQL服務器版本使用附近「=」下降「)SELECT COUNT FROM計數器SELECT ID FROM T_1其中val < 0」在行1

我知道我正確的語法手冊可能不應該有val='decrease',但只是想說明我希望這是插入每個新行的字符串值。

+3

Downvoters照顧解釋? – eggyal

+0

正要問同樣的問題 – Gary

回答

3

試試這個:

INSERT INTO t_2 (count,id,val) 
SELECT 
    (SELECT MAX(count) FROM counter), 
    t1.id, 
    'decrease' 
FROM t_1 
WHERE val < 0, 
+0

如果我想添加一個字段到字符串值,我可以像正常一樣連接它嗎?例如: '('decrease'+ t_1.detail)as val' – elzaer

+0

@elzaer:您應該使用[CONCAT('decrease',t_1.detail)](http://dev.mysql.com/doc/refman /5.5/en/string-functions.html#function_concat) – Marco

3

這是你在找什麼?

INSERT INTO t_2(count,id,val) 
    SELECT (SELECT MAX(count) as count FROM counter) as count, id, 'decrease' as val 
    FROM t_1 
    WHERE val < 0