MySql 13-03-2013

Mysql.png

Union con ORDER BY

Union con order by

Consideriamo di avere la tabella notizie strutturata nel seguente modo:
Notizie:
idNotizia | titolo | notizia | dataModifica

e di effettuare una query di per cercare le notizie prima sul campo titolo e poi sul campo notizia, ordinata per dataModifica DESC utilizzando la UNION, si dovrà procedere nel seguente modo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
SELECT n.*
FROM
    (
        SELECT n.*
        FROM notizie n
        WHERE LOWER(n.titolo) LIKE '%<ricerca>%'
 
        UNION ALL
 
        SELECT n.*
        FROM notizie n
        WHERE LOWER(n.notizia) LIKE '%<ricerca>%'
    ) n
ORDER BY n.dataModifica DESC;

dove <ricerca> sarà il nostro campo di ricerca e <n> sarà il nome da dare al risultante della union. L'ordinamento sarà fatto sul campo dataModifica


Ti potrebbe interessare anche MySql | Union | Order by