У меня есть таблица вроде этого:Когда следует использовать индекс FULLTEXT?
// qanda
+----+---------+-----------------------+------------------------+
| id | title | content | tags |
+----+---------+-----------------------+------------------------+
| 1 | title1 | content1 | <a>tagA<a/><a>tagB</a> |
| 2 | title2 | content2 | <a>tagA</a><a>tagC</a> |
| 3 | title3 | content3 | <a>tagM</a><a>tagB</a> |
| 4 | title4 | content4 | <a>tagD</a> |
| 5 | title5 | content5 | <a>tagA</a><a>tagG</a> |
+----+---------+-----------------------+------------------------+
Теперь я пытаюсь искать в tags
колонки. Поэтому я хочу получить этот результат:
+----+---------+-----------------------+------------------------+
| 1 | title1 | content1 | <a>tagA<a/><a>tagB</a> |
| 3 | title3 | content3 | <a>tagM</a><a>tagB</a> |
+----+---------+-----------------------+------------------------+
Хорошо, а какой лучше?
. . . WHERE tags LIKE '%>tagB<%' -- regular index
. . . WHERE MATCH (tags) AGAINST ('>tagB<') -- fulltext index
Примечание: Иногда мне нужно найти несколько тегов. EX: Я хочу, чтобы выбрать оба tagB
и tagD
, так это, как ожидается выход:
+----+---------+-----------------------+------------------------+
| 1 | title1 | content1 | <a>tagA<a/><a>tagB</a> |
| 3 | title3 | content3 | <a>tagM</a><a>tagB</a> |
| 4 | title4 | content4 | <a>tagD</a> |
+----+---------+-----------------------+------------------------+