Я искал решение, позволяющее работать $.bind
и $.unbind
без проблем в динамически добавленных элементах.
Поскольку on () делает трюк для присоединения событий, чтобы создать фальшивую отвязку на тех, к которым я пришел:
const sendAction = function(e){ ... }
// bind the click
$('body').on('click', 'button.send', sendAction );
// unbind the click
$('body').on('click', 'button.send', function(){} );
Вы можете просто UNION
два запроса, например:
(SELECT p.*, 1 is_premium FROM posts p WHERE category = 'premium' ORDER BY post_date DESC LIMIT 3)
UNION
(SELECT p.*, category = 'premium' FROM posts)
ORDER BY is_premium, post_date DESC
Первый запрос выбирает 3 самых последних премии posts
. Второй запрос выбирает все сообщения. UNION
заботится об удалении дубликатов по запросам. Внешний запрос ставит первоклассные посты первыми, а заказы - по убыванию.
Я бы использовал запрос UNION
, чтобы выбрать 3 продукта премиум-класса, а затем остальные:
SELECT *
FROM ((SELECT 1 AS premium, posts.*
FROM posts
WHERE `posts.category` LIKE 'premium'
ORDER BY post_date_desc
LIMIT 3)
UNION
(SELECT 0 AS premium, posts.*
FROM posts)
) p
GROUP BY p.ID
ORDER BY premium DESC, `p.post_date` DESC
UNION
по умолчанию удаляет дубликаты, поэтому это предотвратит повторение того же поста в списке. [ 114]