OR
słowo kluczowe doprowadza optymalizatora MySQL do szaleństwa.
Możesz spróbować czegoś takiego.
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%'
Możesz też rozważyć wyszukiwanie PEŁNOTEKSTOWE. Wymaga MyISAM lub wersji MySQL 5.6 lub nowszej.
EDYTUJ *Trudno dokładnie określić, co się dzieje z tymi optymalizacjami. Czy możesz tego spróbować? Spowoduje to sprawdzenie, czy wybór języka Cię nie faszeruje.
SELECT name
FROM table
WHERE (name LIKE 'myname%' OR enam LIKE 'myname%')
Czy możesz tego spróbować?
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%'
Nie da to idealnego wyniku — będzie zawierało zduplikowane elementy nazw — ale pominie DISTINCT
krok deduplikacji w zapytaniu.
Możesz również spróbować tego.
SELECT name
FROM table
WHERE lang_index='en'
AND id IN (
SELECT id from table
WHERE (name LIKE 'myname%' OR enam LIKE 'myname%'))