Avatar billede dennism Nybegynder
14. juli 2003 - 19:34 Der er 7 kommentarer og
1 løsning

mySQL: Fejl i query

Hvad er der galt med denne foresp.:

SELECT username, DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(birthdate, '%Y') -
(DATE_FORMAT(CURDATE(), CONCAT(YEAR(CURDATE()),'-%m-%d')) <= DATE_FORMAT(birthdate, CONCAT(YEAR(CURDATE()), '-%m-%d'))) + 1 AS age FROM users WHERE age BETWEEN 14 AND 16 ORDER BY username ASC

Meningen med forespørgelsen er at den skal finde brugere hvor alderen er imellem en bestemt alder!

Jeg får følgende fejl:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource

Og en "or die mysql-error" siger:
Unknown column 'age' in 'where clause'

Den er lavet af "tipsen" i dette spm.:
http://www.eksperten.dk/spm/362266
- se svar 09/06-2003 16:04:37
Avatar billede jinxit Nybegynder
14. juli 2003 - 19:44 #1
Er der en kolonne "age" i din tabel "users"?

Jeg er rimelig sikker på, at du ikke kan referere til et *nyt* kolonnenavn oprettet i SELECT delen fra WHERE delen... Det er i strid med den måde man læser/fortolker en SQL sætning.
Avatar billede dennism Nybegynder
14. juli 2003 - 19:50 #2
Jeg har ikke en age i tabellen!

Hvis ikke dette virker, hvordan kan jeg går det jeg ønsker?
Avatar billede dennism Nybegynder
14. juli 2003 - 19:51 #3
birtydate kolonnen er i YYYY-MM-DD format!
Avatar billede andy Nybegynder
22. juli 2003 - 09:36 #4
jinxit> Det kan man godt, men kun i nyere MySQL versioner.

SELECT username, DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(birthdate, '%Y') -
(DATE_FORMAT(CURDATE(), CONCAT(YEAR(CURDATE()),'-%m-%d')) <= DATE_FORMAT(birthdate, CONCAT(YEAR(CURDATE()), '-%m-%d'))) + 1 AS age FROM users WHERE DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(birthdate, '%Y') -
(DATE_FORMAT(CURDATE(), CONCAT(YEAR(CURDATE()),'-%m-%d')) <= DATE_FORMAT(birthdate, CONCAT(YEAR(CURDATE()), '-%m-%d'))) + 1 BETWEEN 14 AND 16 ORDER BY username ASC
Avatar billede andy Nybegynder
22. juli 2003 - 13:22 #5
doh, nej man kan ikke bruge aliases i WHERE. DOH! Men godt i ORDER BY og GROUP BY. :)
Avatar billede dennism Nybegynder
31. juli 2003 - 14:12 #6
.lukker
Avatar billede dennism Nybegynder
31. juli 2003 - 14:12 #7
Avatar billede andy Nybegynder
31. juli 2003 - 17:55 #8
hvorfor lukker du? Virker det ikke?
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester