可能重复:
Using backticks around field names
What are the differences between backtick and single quote? Can I use IF statement in a query as above?
我花了很长时间搞清楚一个问题,我有一个sql查询,我想要更多的信息,因为我似乎无法在其他地方找到关于该主题的任何信息。
我有一个查询
INSERT INTO prep_items ('id' ,'description' ,'price' ,'gst' ,'job' ,'stores' ,'item_number' ,'decimal')
VALUES ('NULL', 'TESTPRODUCT', '22.99', '1', 'PK', 'AB', '666', '1'
);
但是这会一直返回查询的语法错误。在绞尽脑汁一段时间后,将查询与phpmyadmin生成的查询进行比较,以便插入到db中,我注意到字段名称中的撇号实际上是与tilda(〜)相同的键上的符号。
两个符号有什么区别?应该在哪里使用`而不是' (撇号)。
提前致谢。
(我也注意到,如果我在值列表中将''更改为`,我会收到一条错误消息,说明未知的匹配' valuename'这让我相信它只是列列表,但我在哪里可以找到更多信息?)
再次感谢
答案 0 :(得分:2)
反引号`
引用identifiers,例如表名和列名。引用标识符通常是可选的,但如果名称包含特殊字符(例如空格)或名称是保留字(例如desc
),则必须使用。
SELECT id, `desc` FROM yourtable
单引号'
分隔字符串文字。
SELECT * FROM yourtable WHERE name = 'Foo'