L
L
lexstile2020-07-27 01:38:15
MySQL
lexstile, 2020-07-27 01:38:15

How to sort by multiple fields at once?

Request:

SELECT events.id, events.name as event_name, events.date_start, events.date_end, events.country_id, events.description, events.day_1, events.day_2, events.month_1, events.month_2, events.year_1, events.year_2, countries.name as country_name, links.links, images.images, clusters.clusters FROM events
    LEFT JOIN countries ON events.country_id = countries.id
    LEFT JOIN (SELECT event_id, GROUP_CONCAT(link) as links FROM links GROUP BY event_id) AS links ON events.id = links.event_id
    LEFT JOIN (SELECT event_id, GROUP_CONCAT(name) as images FROM images GROUP BY event_id) AS images ON events.id = images.event_id
    LEFT JOIN (SELECT country_id as c_id, GROUP_CONCAT(name) as clusters FROM clusters GROUP BY c_id) AS clusters ON countries.id = c_id
    WHERE (events.year_1 >= :year_1 && (events.month_1 >= :month_1 || events.month_1 IS NULL) && (events.day_1 >= :day_1 || events.day_1 IS NULL)) AND (events.year_1 <= :year_2 && (events.month_2 <= :month_2 OR events.month_2 IS NULL) && (events.day_2 <= :day_2 OR events.day_2 IS NULL)) 
    ORDER BY events.day_1, events.month_1, events.year_1 desc
    LIMIT 30

5f1e055d76056267543823.png
The number can be omitted and be NULL.
The month can be omitted and be NULL.

Answer the question

In order to leave comments, you need to log in

1 answer(s)
A
alekseyHunter, 2020-07-27
@alekseyHunter

Wrap your query in a new Select query, and sort it again on the required fields.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question