ЗАКАЗАТЬ Не выбирая нижнее число из 2-х вариантов - PullRequest
0 голосов
/ 03 февраля 2019

Моя цель:

выбирать записи с помощью has_t "1" всякий раз, когда они есть, если их нет, выбрать запись с помощью has_t "2".Все оставшиеся записи для соответствующего посещения должны идти внутри столбца «more_items»

Проблема:

Текущий код сначала выбирает has_t "2" вместо has_t "1"

SELECT iu.*,`t`.`o_id`,
v.GID,v.MSID,
GROUP_CONCAT(DISTINCT CONCAT(iu.item_no,'|##|',t.s_amount,'|##|',t.e_item_ordered,'|##|',IFNULL(t.e_item_name,'No-Name-In-T-TBL'),'|##|',IFNULL(t.com,''),'|##|',IFNULL(t.post_s_e,''),'|##|',IFNULL(t.o_id,'')) SEPARATOR '|#|') AS MoreItems,
t.post_s_e,t.e_item_name,t.click_time
FROM `items_unique` iu
LEFT JOIN visits v ON v.id = iu.visit_id
LEFT JOIN trans t ON t.visit_id = iu.visit_id AND t.e_item_ordered = iu.e_item_ordered
WHERE iu.product_id = $PID AND has_t > 0 AND (t.com >= 10 OR has_t = 1)
GROUP BY `v`.`id` ORDER BY v.visited_at DESC LIMIT 10

Примечание. Предыдущая версия кода, похоже, сделала это с использованием несовместимого порядка подзапросов SQL, который в любом случае не работает на MariaDB:

ORDER BY `iu`.`has_t` LIMIT 18446744073709551615
...