我在尝试更新列值 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';
所以这里是 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';