Должны ли одинарные кавычки использоваться для многострочных обновлений MySQL?

495
THE DOCTOR

Когда вы выполняете 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'); 
0
Вы спрашиваете, в чем разница между двумя запросами? Ramhound 8 лет назад 0
@Ramhound - Да, я спрашиваю, есть ли разница. Благодарю. THE DOCTOR 8 лет назад 0
Я предполагаю, что вы выполнили каждый запрос и вернули бы результаты, прежде чем задать этот вопрос? * Просто переключите UPDATE на SELECT и избавьтесь от SET. * Ramhound 8 лет назад 0

1 ответ на вопрос

0
Jerome Indefenzo

В общем, цитируйте все строки и цифры без кавычек. Однако ваш SQL будет ломаться, если в строке есть одинарные кавычки, поэтому избегайте одинарных кавычек, удваивая их.

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

С другой стороны, цитирование чисел в SQL - это плохо. Хотя SQL неявно пытается преобразовать эти значения, это может привести к нежелательным результатам. Скажем, у вас есть тип CHAR, и вы вводите его без кавычек 1вместо кавычек '1', вы получите символ в 1-й позиции кодировки вместо фактического символа «1».