3 回答

TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超8個(gè)贊
不,您不能使用您建議的語法(盡管它會(huì)很好)。
一種方法是排列列名和值:
INSERT INTO `table`
(`column`, `column2`,...)
VALUES
('value1', 'value2'...);
更新響應(yīng)您的評(píng)論“語句包含來自字符串外部的變量”:如果您參數(shù)化您的 SQL 語句,那么將列名與變量匹配很容易檢查參數(shù)是否為其各自的列命名:@ColumnName。
這實(shí)際上是我在 TSQL 腳本中的做法:
INSERT INTO `table`
(
`column`,
`column2`,
...
)
VALUES
(
'value1',
'value2',
...
);
(將逗號(hào)放在行首也很常見)
但老實(shí)說,一旦你得到足夠多的列,很容易混淆列的位置。如果它們具有相同的類型(和相似的值范圍),您可能不會(huì)立即注意到......

TA貢獻(xiàn)1906條經(jīng)驗(yàn) 獲得超10個(gè)贊
雖然這個(gè)問題有點(diǎn)老,但我會(huì)把它放在這里供未來的研究人員使用。
我建議使用 SET 語法而不是丑陋的 VALUES 列表語法。
INSERT INTO table
SET
column1 = 'value1',
column2 = 'value2';
恕我直言,這是 MySQL 中最干凈的方式。
- 3 回答
- 0 關(guān)注
- 216 瀏覽
添加回答
舉報(bào)