Das OR
Schlüsselwort treibt den Optimierer von MySQL in den Wahnsinn.
Sie könnten so etwas versuchen.
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%'
Oder Sie ziehen eine VOLLTEXT-Suche in Betracht. Es erfordert MyISAM oder eine Version von MySQL 5.6 oder höher.
BEARBEITEN *Es ist schwer, genau zu wissen, was mit diesen Optimierungsdingen los ist. Kannst du das versuchen? So siehst du, ob dich die Sprachauswahl stört.
SELECT name
FROM table
WHERE (name LIKE 'myname%' OR enam LIKE 'myname%')
Können Sie das versuchen?
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%'
Es wird kein perfektes Ergebnis liefern – es wird doppelte Namenselemente geben – aber es wird ein DISTINCT
überspringen Deduplizierungsschritt in Ihrer Abfrage.
Sie können dies auch versuchen.
SELECT name
FROM table
WHERE lang_index='en'
AND id IN (
SELECT id from table
WHERE (name LIKE 'myname%' OR enam LIKE 'myname%'))