Estou tentando compilar isso em minha mente .. eu tenho uma tabela com campos de nome e sobrenome e tenho uma string como "Bob Jones" ou "Bob Michael Jones" e vários outros.
o que acontece é que tenho, por exemplo, Bob no primeiro nome e Michael Jones no sobrenome
então estou tentando
SELECT neededfield, CONCAT(firstname, ' ', lastname) as firstlast
FROM users
WHERE firstlast = "Bob Michael Jones"
mas diz coluna desconhecida "firstlast" .. alguém pode ajudar por favor?
Experimente isto:
fonte
fonte
Use CONCAT_WS ().
O primeiro argumento é o separador para o resto dos argumentos.
fonte
CONCAT_WS(' ', ..
Experimentar:
Seu alias firstlast não está disponível na cláusula where da consulta, a menos que você faça a consulta como uma sub-seleção.
fonte
Existe uma alternativa para repetir a
CONCAT
expressão ou usar subconsultas. Você pode usar aHAVING
cláusula, que reconhece apelidos de coluna.Aqui está um SQL Fiddle funcional .
fonte