Итак, у меня есть сценарий, в котором мне нужно от 1 до 8 человек, которым нужно запросить до 3 вещей, которые им «понравились» на человека.У меня есть запрос, настроенный как
SELECT liked FROM likeTable WHERE uid IN (uid1,uid2,uid3,uid4) LIMIT 12
, но очевидно, что он потенциально может остановиться, когда у меня есть 12 «лайков» для uid1, а остальное равно 0. Я прочитал возможное решение, например, с использованием UNION ALL...
(SELECT liked FROM likeTable WHERE uid = uid1 LIMIT 3)
UNION ALL
(SELECT liked FROM likeTable WHERE uid = uid2 LIMIT 3)
UNION ALL
(SELECT liked FROM likeTable WHERE uid = uid3 LIMIT 3)
UNION ALL
(SELECT liked FROM likeTable WHERE uid = uid4 LIMIT 3)
И я смог бы добиться этого, сделав строку запроса sql в php с помощью forloop, но является ли это эффективным способом запроса моих данных?
note:Меня не особо волнует порядок, в котором извлекается «понравившийся», хотя было бы неплохо, если бы я мог добавить ORDER BY likeID DESC, который является моей автоинкрементной колонкой
Спасибо!