OR
ключова дума подлудява оптимизатора на MySQL.
Може да опитате нещо подобно.
SELECT name FROM table WHERE lang_index='en' AND name LIKE 'myname%'
UNION
SELECT name FROM table WHERE lang_index='en' AND enam LIKE 'myname%'
Или може да помислите за търсене в ПЪЛЕН ТЕКСТ. Изисква MyISAM или версия на MySQL 5.6 или по-нова.
РЕДАКТИРАНЕ *Трудно е да се знае какво точно се случва с тези неща за оптимизация. Можете ли да опитате това? Това ще види дали изборът на език не ви пречи.
SELECT name
FROM table
WHERE (name LIKE 'myname%' OR enam LIKE 'myname%')
Можете ли да опитате това?
SELECT name FROM table WHERE lang_index='en' AND name LIKE 'myname%'
UNION ALL
SELECT name FROM table WHERE lang_index='en' AND enam LIKE 'myname%'
Няма да даде перфектен резултат – ще има дублиращи се елементи с имена – но ще пропусне DISTINCT
стъпка за дедублиране във вашата заявка.
Може да опитате и това.
SELECT name
FROM table
WHERE lang_index='en'
AND id IN (
SELECT id from table
WHERE (name LIKE 'myname%' OR enam LIKE 'myname%'))