解决“Where 子句中的未知列”SQL 错误
SQL 中可怕的“Where 子句中的未知列”错误通常源于对查询评估顺序的简单误解。 SQL 从右向左处理查询,这意味着 WHERE
子句在 子句中定义的 别名被识别之前进行评估。SELECT
<code class="language-sql">SELECT u_name AS user_name FROM users WHERE user_name = "john";</code>
过滤结果,但数据库在user_name
评估 子句后遇到此别名 。由于 WHERE
不是 user_name
表中的列,因此会触发错误。users
解决方案:优先考虑列引用
有两种简单的方法可以解决此问题:
WHERE
<code class="language-sql">SELECT u_name AS user_name FROM users WHERE u_name = "john";</code>
SELECT
子句求值之前强制解析别名:WHERE
<code class="language-sql">SELECT (u_name) AS user_name FROM users WHERE user_name = "john";</code>
通过了解评估顺序并采用其中一种解决方案,可以有效预防和解决“Unknown Column inWhere Clause”错误。
以上是为什么我的 SQL 查询会抛出'Where 子句中的未知列”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!