【问题标题】:SQL SELECT INNER JOIN WHERE OFFSETSQL SELECT INNER JOIN WHERE OFFSET
【发布时间】:2024-01-22 22:24:01
【问题描述】:

我正在尝试在我的网站上编写一个搜索栏,但是当我添加 WHERE .. LIKE 时出现错误。

$SELECT *
FROM articles
INNER JOIN fournisseur ON fournisseur.fournisseur_id = articles._fournisseur_id
ORDER BY ".$order." LIMIT ".$limit." OFFSET ".$debut."
WHERE article_designation LIKE ".$recherche."

这是错误信息:

致命错误:未捕获的异常 'PDOException' 带有消息 'SQLSTATE[42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取正确的语法,以便在

在没有WHERE 的情况下,该请求可以完美运行。查询有什么问题?

【问题讨论】:

  • 在限制之前去哪里,通常是顺序
  • 正确的顺序是SELECT ... FROM ... INNER JOIN ... WHERE ... ORDER BY ... LIMIT
  • ... 你需要在关键字 WHERE 之前有一个空格
  • @Siyual 是对的,哪里是在错误的地方,不是......必须不是在 order by 之后而是在..之前。

标签: php sql select request where


【解决方案1】:

您需要将WHERE 子句放在ORDER BYLIMIT 之前

【讨论】:

  • 感谢您的帮助:)