mysql 查询中的 Concat()

Dan*_*ern 2 php mysql concatenation

我在 mysql 查询中连接字符串时遇到问题。

这是我的查询:

SELECT *, CONCAT(nombre,' ',apellido) AS fullname FROM user WHERE nombre LIKE '%$busqueda%' OR apellido LIKE '%$busqueda%' OR email LIKE '%$busqueda%' OR about LIKE '%$busqueda%' OR place LIKE '%$busqueda%' or fullname LIKE '%$busqueda%'
Run Code Online (Sandbox Code Playgroud)

但是查询失败: Query failed: Unknown column 'fullname' in 'where clause'

可能只是一个语法错误,谢谢

Mar*_*ers 5

您不能在 WHERE 子句中引用别名。

\n
\n

可以使用 AS alias_name 为 select_expr 指定别名。别名用作表达式的列名,并且可以在 GROUP BY、ORDER BY 或 HAVING 子句中使用。

\n

不允许在 WHERE 子句中引用列别名,因为执行 WHERE 子句时可能尚未确定列值。请参阅第 C.5.5.4 节,\xe2\x80\x9c 列别名\xe2\x80\x9d 的问题。

\n
\n

来源

\n

你可以改变:

\n
... OR fullname LIKE \'%$busqueda%\'\n
Run Code Online (Sandbox Code Playgroud)\n

到

\n
... or CONCAT(nombre,\' \',apellido) LIKE \'%$busqueda%\'\n
Run Code Online (Sandbox Code Playgroud)\n

顺便说一句,所有这些 LIKE 都会使您的查询变得非常慢。您可能想查看全文搜索。

\n