Поиск с помощью MATCH () требует полнотекстового индекса по категории столбцов, что может быть избыточным.
Если вы действительно хотите просто эти два случая, вы можете написать
select * from table where
category = 'book' or category = 'books'
с помощью Oddant'sответ, вы также можете получить такие результаты, как «probookcover» или что-то еще.
Если вы хотите, чтобы он был без учета регистра, у вас есть несколько вариантов.
select * from table where
lower(category) = 'book' or lower(category) = 'books'
или
select * from table where
category like 'book' or category like 'books'
В качестве альтернативы вы также можете сделать
select * from table where
category like 'book%'
, который вернет вам все столбцы, начинающиеся с книги, но вы также можете получить 'bookcover'.
РЕДАКТИРОВАТЬ: С учетом вашего комментария:
Как я уже сказал, match () излишне, поэтому я бы сделал это так:
select * from table where
category = whatYourUserEnters OR category = substring(whatYourUserEnters, 1, length(whatYourUserEnters) - 1)