Самый быстрый способ реализовать поиск по списку в MySQL - PullRequest
1 голос
/ 01 июня 2011

Какой самый лучший (самый быстрый) способ реализовать поиск по списку в MySQL? Мой частный случай таков:

  • У меня есть список правил (например, {1, 3, 11, 5, 6, 9, 1232, 4}). Это может быть реализовано в PHP или MySql.
  • У меня есть таблица в БД, в которой перечислены применяемые правила (например, {1, 3, 6}) [таблица «применена»]
  • Мне нужно выбрать из списка правил first , который еще не был применен (в примере результат 11, потому что 1 и 3 уже применены).
  • Когда правило выбрано, оно выполняется (связанное с ним действие) и обновляется «примененная» таблица (в примере приложение вставляет 11 в таблицу: {1, 3, 6, 11})

Применяемые правила должны храниться в базе данных, поскольку при каждой загрузке страницы выполняется только одно правило. Какова лучшая реализация для такого рода проблем? Любой образец кода доступен?

1 Ответ

0 голосов
/ 01 июня 2011

Чтобы получить первое правило, которое не применяется, вы можете использовать

SELECT r.* 
FROM rules r 
LEFT JOIN applied a ON (a.rule_id = r.id)
WHERE a.rule_id IS NULL
ORDER BY r.id
LIMIT 1

Затем вы выполняете действие, связанное с правилом, и вставляете новую запись в таблицу applied.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...