OR
sökord gör MySQL:s optimerare till vansinne.
Du kan prova något liknande.
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%'
Eller så kan du överväga att söka i FULLTEXT. Det kräver MyISAM eller en version av MySQL 5.6 eller senare.
REDIGERA *Det är svårt att veta exakt vad som händer med dessa optimeringssaker. Kan du prova detta? Detta kommer att se om språkvalet stör dig.
SELECT name
FROM table
WHERE (name LIKE 'myname%' OR enam LIKE 'myname%')
Kan du prova detta?
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%'
Det kommer inte att ge ett perfekt resultat -- det kommer att ha dubbletter av namnobjekt -- men det kommer att hoppa över en DISTINCT
dedupliceringssteg i din fråga.
Du kan också prova detta.
SELECT name
FROM table
WHERE lang_index='en'
AND id IN (
SELECT id from table
WHERE (name LIKE 'myname%' OR enam LIKE 'myname%'))