Если в вашей таблице есть уникальный первичный ключ, такой как идентификатор, вы можете сделать это:
DELETE FROM SCORES
WHERE
ID NOT IN (
SELECT TOP 20 ID
FROM Scores
ORDER BY Points DESC)
OR
ID NOT IN (
SELECT TOP 20 ID
FROM Scores
WHERE
DateDiff("d", Date, NOW()) <= 365
ORDER BY Points Desc)
Обратите внимание, что я использую OR
вместо AND
, потому что:
[ 115] (NOT IN A) OR (NOT IN B)
эквивалентно NOT ((IN A) AND (IN B))
drupal подражает парадигмам AOP через рычаги, которые в основном позволяют разработчикам переплетаться в битах кода во время потока выполнения. можно смотреть на рычаги, которые разработчик может реализовать здесь.
как быстрый пример, если я разрабатывал новый основанный на узле модуль (узлы, являющиеся формой основных данных в drupal), у меня есть мгновенный доступ к комментариям и таксономии без дополнительной работы с моей стороны. комментарий и модули таксономии имеют способность сцепиться в узлы и обеспечить ту добавленную функциональность. так в этом смысле я не должен объяснять такие функции в своей программе, но могу использовать в своих интересах ту гибкость.