在 SQL 查询中使用 'from' 字段时出现问题

4
SELECT m.id, m.title, m.message, m.from, m.to2, m.to_viewed, m.from_viewed, m.created, u.username 
FROM tbl_messages m 
INNER JOIN tbl_users u 
ON m.from = u.id WHERE m.to2 = '1' && m.to_saved = '1'  && m.to_deleted = '0' 
ORDER BY m.created DESC

m.from 删除后,查询就可以运行了。它不喜欢这个字段名字。 'from' 是保留字吗? 有人能提供一个解决方法吗?

谢谢


你应该在用作列名或表名的关键字上使用反引号 [`]。 - Ghazanfar Mir
可能是在MySQL中将保留字用作表或列名导致的语法错误的重复问题。 - Ian Ringrose
5个回答

3

3

是的,这是保留字之一。使用反引号引用它:

m.`from`

1

是的,它是一个保留字。你应该用反引号将 from 包围起来,就像这样:

m.`from`

1

From是保留字,是的。您可以尝试在其周围添加引号。最简单的方法是避免在查询中使用保留字。


0

是的,“from”是保留字。在MySQL中,我记得你可以用双引号(“)或反引号(`)将其括起来(但我也使用PostgreSQL,所以可能会混淆两个系统)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接