理解 MySQL SELECT 查询中的 CONCAT 条件
在处理表示名称或其他串联信息的字段时,MySQL 的 CONCAT 函数提供了一个多功能工具组合值并进行比较。但是,在 SELECT 查询中使用 CONCAT 可能会导致分配给连接表达式的别名出现“未知列”错误。
要克服此错误,重要的是要了解 SELECT 查询中的别名仅适用于输出列,并且在查询本身中无法识别。因此,要在 WHERE 条件中使用 CONCAT 表达式,您有两个选择:
重复 CONCAT 表达式:
而不是使用别名,在 WHERE 中重复 CONCAT 表达式子句:
SELECT neededfield, CONCAT(firstname, ' ', lastname) as firstlast FROM users WHERE CONCAT(firstname, ' ', lastname) = "Bob Michael Jones"
包装查询:
或者,您可以将原始查询包装到子查询中,并为子查询分配别名CONCAT 表达式在子查询:
SELECT * FROM ( SELECT neededfield, CONCAT(firstname, ' ', lastname) as firstlast FROM users) base WHERE firstLast = "Bob Michael Jones"
在这两种情况下,查询都会成功将名字和姓氏字段的串联值与提供的字符串“Bob Michael Jones”进行比较,并检索所需的结果.
以上是为什么在 SELECT 查询中使用 CONCAT 时 MySQL 会抛出'未知列”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!