我是MySQL新手,尝试根据用户名和行索引更新表行,但它不起作用。告诉我'INDEX = 54'附近有错误。
INDEX是自动递增主索引列的名称。
UPDATE `TABLENAME`
SET NAME = 'NAME', DESCRIPTION = 'DESC'
WHERE USER = 'name' AND INDEX = 54
实际上,甚至:
SELECT * FROM `tablename` WHERE INDEX=30
不起作用;它说:
“#1064 - 您的SQL语法出错;请查看与您的MySQL服务器版本对应的手册,以便在第1行'INDEX = 30 LIMIT 0,30'附近使用正确的语法”
我在这里缺少一些基本的东西。
答案 0 :(得分:4)
INDEX
是MySQL reserved keyword.如果您将其用作列名,请将其括在反引号中:
UPDATE `TABLENAME`
SET NAME = 'NAME', DESCRIPTION = 'DESC'
WHERE USER = 'name' AND `INDEX` = 54
答案 1 :(得分:3)
尝试引用INDEX
,就像引用TABLENAME
:
`INDEX`
它可能会将其解释为关键字。此外,您忘记提供确切的错误消息。
答案 2 :(得分:1)
INDEX是一个保留字。您可能需要将其放在后引号中:
UPDATE `TABLENAME`
SET NAME = 'NAME', DESCRIPTION = 'DESC'
WHERE USER = 'name' AND `INDEX` = 54
然后你需要担心是否应该使用大写或小写或一些混合大小写拼写。
答案 3 :(得分:1)
INDEX是一个保留字。用反引号逃脱它。
UPDATE `TABLENAME`
SET NAME = 'NAME',
DESCRIPTION = 'DESC'
WHERE USER = 'name'
AND `INDEX` = 54