我在尝试更新列值 mysql 时遇到错误

I am getting a error trying to UPDATE a column value mysql

所以这里是 table

我正在尝试更新名称为 London 且值为 (TINYINT) 45 的所有 city 的 (VARCHAR) 的状态。

这是我的查询

UPDATE supplier
SET status = 45
WHERE city = ‘ London‘;

这是我收到的错误消息,但我看不到语法错误

结果应该是所有城市名称 London 的状态都是 45

问题出在您使用引号。 ' 不同。确保您使用正确的单引号(而不是花哨的 unicode 引号):

UPDATE supplier
SET status = 45
WHERE city = 'London';

查看引号的差异 here

在 MySQL 和可能许多其他 RDMS 中,反引号用于 table 和列标识符,尽管根本不是强制性的......除非您的标识符是保留关键字或包含空格( s) 或其他特定字符 (see mysql doc here).

另一方面,在插入语句、更新语句、where 子句等中,单引号到处都用于字符串值。也常用于日期。

这就是为什么,正如建议的那样,您应该这样写:

UPDATE supplier
SET status = 45
WHERE city = 'London';