26. januar 2006 - 14:43Der er
15 kommentarer og 1 løsning
Unknown coloumn age - SELECT --calculation-- AS age FROM
Jeg har flg. query, men det giver fejlen "Unknown coloumn age in where clause", hvad er der galt?
"SELECT u.*,e.*,MAX(l.timestamp) AS lastlogin,((YEAR(CURDATE())-YEAR(u.birth)) - (RIGHT(CURDATE(),5)<RIGHT(u.birth,5))) AS age FROM users AS u, expanded AS e JOIN log AS l ON l.uid=u.id WHERE e.uid=u.id && " . $q . " ORDER BY lastlogin DESC"
Skal virksomheder stå stærkere mod angreb og kunne udvikle sig, skal sikkerhed, drift og forretning tænkes sammen. Det er tanken bag Jysk IT’s ambition om at skabe en “sikker fremtid” for kunderne.
Nå ja, sorry, skulle selvf. have postet queryet. Here it is:
SELECT u.*,e.*,MAX(l.timestamp) AS lastlogin,((YEAR(CURDATE())-YEAR(u.birth)) - (RIGHT(CURDATE(),5)<RIGHT(u.birth,5))) AS age FROM users AS u, expanded AS e JOIN log AS l ON l.uid=u.id WHERE e.uid=u.id && age >= '15' && u.country='dk' ORDER BY lastlogin DESC
Og age er jo defineret som alias. Det plejer da godt at kunne blive brugt i WHERE clause.
Så er der kun tilbage at smide alias koden direkte ind:
SELECT u.*,e.*,MAX(l.timestamp) AS lastlogin,((YEAR(CURDATE())-YEAR(u.birth)) - (RIGHT(CURDATE(),5)<RIGHT(u.birth,5))) AS age FROM users AS u, expanded AS e JOIN log AS l ON l.uid=u.id WHERE e.uid=u.id AND ,((YEAR(CURDATE())-YEAR(u.birth)) - (RIGHT(CURDATE(),5)<RIGHT(u.birth,5))) >= 15 AND u.country='dk' ORDER BY lastlogin DESC
Der var lige smuttet et komma ind: SELECT u.*,e.*,MAX(l.timestamp) AS lastlogin,((YEAR(CURDATE())-YEAR(u.birth)) - (RIGHT(CURDATE(),5)<RIGHT(u.birth,5))) AS age FROM users AS u, expanded AS e JOIN log AS l ON l.uid=u.id WHERE e.uid=u.id AND ((YEAR(CURDATE())-YEAR(u.birth)) - (RIGHT(CURDATE(),5)<RIGHT(u.birth,5))) >= 15 AND u.country='dk' ORDER BY lastlogin DESC
Mente da også at MySQL kunne bruge alias i where, men jeg sidder desværre ikke et sted hvor jeg kan teste det. Men vi fandt da en løsning...
.o) <-- One Eyed Jack
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.