多行 MySQL 更新應該使用單引號嗎?

多行 MySQL 更新應該使用單引號嗎?

當您在 MySQL 中對多行執行 SQL UPDATE 時,似乎您可以在每個值周圍添加單引號,也可以不添加單引號,這都會產生相同的結果。

如果不使用單引號產生相同的結果,是否有理由在 UPDATE 查詢中使用單引號?有什麼區別嗎?

不含引號的範例:

UPDATE superuser
SET poop = rainbows
WHERE id IN (1, 2, 3);

引號的範例:

UPDATE superuser
SET poop = rainbows
WHERE id IN ('1', '2', '3');

答案1

一般來說,引用所有字串並取消引用數字。但是,如果字串上有單引號,您的 SQL 將會中斷,因此透過將其加倍來轉義單引號。

SELECT * FROM superuser WHERE poop = 'johnny''s'
-- note how the string [johnny's] have double quotes

另一方面,在 SQL 中引用數字是不好的。儘管 SQL 隱式嘗試轉換這些值,但它可能會導致不必要的結果。假設您有一個 CHAR 類型,並且向其提供不帶引號的字符1而不是帶引號的字符'1',您將得到字符集第一個位置的字符而不是實際的“1”字符。

相關內容