При выполнении SQL UPDATE для нескольких строк в MySQL, похоже, вы можете либо заключать каждое значение в одинарные кавычки, либо нет, и это даст тот же результат.
Есть ли смысл использовать одинарные кавычки в запросе 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-й позиции набора символов вместо фактического символа '1'.