OR
søgeord gør MySQL's optimizer til vanvid.
Du kan prøve noget som dette.
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 du kan overveje at søge i FULLTEXT. Det kræver MyISAM eller en version af MySQL 5.6 eller nyere.
REDIGER *Det er svært at vide præcis, hvad der sker med disse optimeringsting. Kan du prøve dette? Dette vil se, om sprogvalget besmitter dig.
SELECT name
FROM table
WHERE (name LIKE 'myname%' OR enam LIKE 'myname%')
Kan du prøve dette?
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 vil ikke give et perfekt resultat -- det vil have duplikerede navneelementer -- men det vil springe en DISTINCT
over deduplikeringstrin i din forespørgsel.
Du kan også prøve dette.
SELECT name
FROM table
WHERE lang_index='en'
AND id IN (
SELECT id from table
WHERE (name LIKE 'myname%' OR enam LIKE 'myname%'))