В MyISAM
:
SELECT *
FROM mytable
WHERE MATCH(firstname, lastname) AGAINST ("Joe* Robert*" IN BOOLEAN MODE);
Это будет работать намного быстрее, если вы создадите индекс FULLTEXT
:
CREATE FULLTEXT INDEX ON mytable (firstname, lastname)
Чтобы запрос мог искать короткие имена (например, Joe
в вашем случае), вам нужно установить переменную @@ft_min_word_len
в 1
до создания индекса.
В InnoDB
вам нужно разделить строку поиска:
SELECT *
FROM mytable
WHERE firstname LIKE 'Joe%'
AND lastname LIKE 'Robert%'