单引号是否应该用于多行MySQL更新?


0

当您在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');

你在问这两个查询之间有什么区别吗?
Ramhound 2016年

@Ramhound - 是的,我在问是否有任何区别。谢谢。
医生

在假设这个问题之前,我假设您已经运行了每个查询,并返回结果会是什么? 只需将UPDATE切换到SELECT并删除SET即可。
Ramhound 2016年

Answers:


0

通常,引用所有字符串和非引号。但是,如果字符串上有单引号,则SQL将会中断,因此请将单引号转换为加倍。

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

另一方面,在SQL中引用数字是不好的。尽管SQL隐式尝试转换这些值,但它可能会导致不需要的结果。比如说,你有一个CHAR类型并且你不加引号1而不是引用它'1',你将得到字符在charset的第一个位置而不是实际的'1'字符。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.