DT
Это ведь после того, как их отсортировал?(что бы посчитать сочетания а не перестановки)
Те потенциально, можно просто допустим захешировать (или пронумеровать) все эти комбинации и отсортировать основную таблицу по ним ORDER BY cityHash64(sorted_tag_array). и писать запросы вида
SELECT * FROM main_table WHERE hash IN (SELECT hash FROM all_hashes WHERE tag = 'some_tag' and tag = 'some2' )
Но это более спорная штука.