De OR
zoekwoord maakt MySQL's optimizer gek.
Je zou zoiets kunnen proberen.
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%'
Of u kunt overwegen FULLTEXT te zoeken. Het vereist MyISAM of een versie van MySQL 5.6 of hoger.
BEWERKEN *Het is moeilijk om precies te weten wat er aan de hand is met deze optimalisatie-dingen. Kun je dit proberen? Dit zal zien of de taalselectie je vervuilt.
SELECT name
FROM table
WHERE (name LIKE 'myname%' OR enam LIKE 'myname%')
Kun je dit proberen?
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%'
Het geeft geen perfect resultaat -- het heeft dubbele naamitems -- maar het slaat een DISTINCT
over ontdubbelingsstap in uw zoekopdracht.
Je zou dit ook kunnen proberen.
SELECT name
FROM table
WHERE lang_index='en'
AND id IN (
SELECT id from table
WHERE (name LIKE 'myname%' OR enam LIKE 'myname%'))