Concat non va!!!

ivarello

Utente Attivo
14 Dic 2012
211
1
16
Ragazzi mi capita una cosa strana (in realtà deve esserci qualche stupido errore che non vedo).
Sto cercando fare una semplice concatenazione delle colonne di un database per una ricerca.
Esempio stupido:
PHP:
$result = mysql_query("SELECT CONCAT(nome, ' ', cognome) AS nomi FROM utenti where nomi like '%Mario Rossi%' ");
while ($row = mysql_fetch_assoc($result)) {
echo 	$nome    = stripslashes($row['nome']);
}
Ma mi da sempre questo errore,
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in
Tipico di una trascrizione sbagliata.
Cosa Sbaglio ????
 
Ragazzi ho risolto semplicemente così:
PHP:
$result = mysql_query("SELECT * FROM utenti where CONCAT(nome, ' ', cognome) like '%Mario Rossi%' ");
Secondo me a seconda della versione del Mysql, ci potrebbero essere problemi con
concat (*,*) as nomeascelta
quindi per sicurezza meglio mettere direttamente la concatenazione nelle regole di WHERE.
;)
 
Non è un problema della versione di MySql, semplicemente nella clausola WHERE della query non è possibile fare riferimento all'alias di una colonna, come specifica la documentazione:

http://dev.mysql.com/doc/refman/5.0/en/problems-with-alias.html
Standard SQL disallows references to column aliases in a WHERE clause. This restriction is imposed because when the WHERE clause is evaluated, the column value may not yet have been determined.

Una soluzione potrebbe essere quella di adottare la clausola HAVING come indicato, sempre nel link di referenza.
 

Discussioni simili