On Sun, 29 Jan 2017 14:02:34 +0100, Kurt G <
kur...@guldbaek.net>
wrote:
>Hej.
>Jeg har en tabel, hvor der er et felt af typen DATE. Feltet hedder
>'udm', der står for udmeldt. Dette felt er en senere tilføjelse som
>ønskes af kassereren!
>Desuden er der et felt 'Udmeldt', som har et tal større end 0 for
>rækkefølgen af udmeldingerne.
>
>Jeg vil gerne liste nogle af posterne, som indeholder årstallet 2016,
>dertil bruger jeg forespørgselen:
>
>SELECT * FROM Medlemmer WHERE Udmeldt > 0 AND udm = LIKE '%2016%' ORDER
>BY Udmeldt DESC
>
>Uden "AND udm = LIKE '%2016%'" virker det OK.
Hvis udm er et dato-felt, som du skriver, så ville jeg bruge:
SELECT * FROM Medlemmer
WHERE Udmeldt > 0 AND YEAR(udm) = 2016
ORDER BY Udmeldt DESC
Det er noget rod at bruge tekst-funktioner (LIKE) til dato-felter.
Brug dato-funktioner til dato-felter.
Det er i øvrigt også langt hurtigere. LIKE – især et LIKE, der starter
med joker-tegn – er pr.definiton langsom.
RTFM:
https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html
Good luck,
Jørn
--
Jørn Andersen
http://socialister.dk
http://marxisme.dk