gpt4 book ai didi

mysql - 为什么sql中的update命令一定要用斜单引号?

转载 作者:行者123 更新时间:2023-11-29 01:46:05 27 4
gpt4 key购买 nike

我一直在更新 mysql 数据库中的某些字段时遇到问题,我很沮丧,因为有时 mysql 拒绝允许我查询,除非我将字段用斜引号而不是单引号括起来。这样做似乎没有明显的模式,有人可以解释一下这里发生了什么吗?

这个查询没有任何类型的引号(x 是主键)

UPDATE  table SET  x =  1821 WHERE  x =1820

这两个查询因 o 附近的语法问题而失败。

UPDATE  table SET  o =  200 WHERE  x =1820

UPDATE table SET 'o' = 200 WHERE x =1820

此查询有效。

UPDATE  table SET  `o` =  200 WHERE  x =1820

mysql 坚持使用斜引号有什么正当理由吗?

最佳答案

在几乎所有的 SQL 方言中,字符串(如输入值)用单引号引起来,而标识符(如表名或列名)不带引号:

SELECT column_name, function_name() AS column_alias
FROM table_name
WHERE another_column='The value to match'

这适用于 MySQL、Oracle、SQL-Server 等等。

这是一般规则。然后,有一种特殊情况:当你想为通常无效的标识符使用某个名称时。在这种情况下,MySQL 允许您在名称周围使用反引号(其他 DBMS 使用方括号、双引号或根本不允许您使用这样的名称):

SELECT `Full Name` -- Name with spaces
FROM `from` -- Reserved word

一般来说,最好避免使用这类名称,尽管我知道在某些情况下,真正好的名称是 already taken。 :

SELECT `key`, value
FROM settings

关于您的示例,很明显它们不是真正的查询,因为使用 table 作为表名会在所有示例中触发语法错误;-)

关于mysql - 为什么sql中的update命令一定要用斜单引号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6537748/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com