document.querySelector('.cards').addEventListener(
'click',
(e) => {
if (!e.target.matches('.card')) {
return;
}
document.querySelectorAll('.card.active').forEach(
(c) => c.classList.remove('active')
);
if (e.target.previousElementSibling) {
e.target.previousElementSibling.classList.add('active');
}
if (e.target.nextElementSibling) {
e.target.nextElementSibling.classList.add('active');
}
},
); WITH `cte` AS (
SELECT *, ROW_NUMBER() OVER `w` AS `row_num`
FROM `table`
WHERE `size` <= :size
WINDOW `w` AS (
PARTITION BY `size`
ORDER BY `date` DESC
)
) SELECT *
FROM `cte`
WHERE `row_num` = 1
ORDER BY `price` = 0, `size` DESC
LIMIT 1SELECT `t`.*
FROM (
SELECT `size`, MAX(`date`) as `date`
FROM `table`
WHERE `size` <= 32
GROUP BY `size`
) AS `m`
JOIN `table` AS `t`
ON `t`.`size` = `m`.`size` AND `t`.`date` = `m`.`date`
ORDER BY `t`.`price` = 0, `t`.`size` DESC
LIMIT 1 new Date('0001-01-01 00:00:00');
// Date Mon Jan 01 0001 00:00:00 GMT+0230 (Москва, стандартное время)
new Date('0001-01-01 00:00:00Z');
// Date Mon Jan 01 0001 02:30:17 GMT+0230 (Москва, стандартное время) cast_ray(5, 5, 0, 10), последняя проверяемая точка будет иметь координаты x_ == 5 и y_ == 15.