В большом проекте (сборник решенных проблем ...) У меня есть данные организованы следующим образом (типичный M: N отношение):поиск MySQL для записи, имеющие и не имеющие специфические теги
records | record_id, other_info
tag_map | map_id, record_id, tag_id
tags | tag_id, tag_text, other info
I хотел бы добавить функцию фильтрации. В фильтре пользователь может выбрать для каждого тега, требуется ли его присутствие, проигнорировано или запрещено.
например. Мне нужно найти все записи, которые
- имеет тег с tag_id = 1
- И имеет тег с tag_id = 4
- И не имеет тега с tag_id = 3
- и любые другие теги не являются важный.
'have tag with tag_id = 1 И иметь тег tag_id = 4' ... очевидно, это невозможно. Вы имели в виду OR? –
Возможно - представьте себе книги и их теги: вымысел, приключение, документ, hasImages, wasFilmed. Теперь я хочу получить все книги, у которых есть изображения И были сняты И не вымысел. –