У меня есть строковый массив, состоящий из слов (например, {alpha, beta, gamma}) и таблицы MySQL, заполненной словами. Для каждого строкового массива я придумываю инструкцию SELECT, которая запрашивает таблицу MySQL, чтобы узнать, есть ли совпадения слов. Возвращаемые строки дают мне знать, когда слово в моем массиве строк является одним из уникальных в таблице. Затем я изменяю текст конкретной строки в массиве строк. Для простоты давайте предположим, что я хочу вызвать .ToUpper () для него.
Мой текущий метод состоит в том, чтобы получить все строки из таблицы, которые соответствуют, а затем перебрать массив строк и проверить, соответствует ли каждая возвращенная строка каждой отдельной строке в массиве. Это невероятно неэффективно, и я бы предпочел, чтобы в строках, возвращаемых из моего запроса MySQL, был столбец, в котором указывалось бы, с какой позиции в массиве строк произошло это слово. Таким образом, я могу прыгнуть прямо туда и повозиться со струной. Есть ли способ дать каждому предложению "LIKE" в операторе where уникальный идентификатор, который возвращается, если это конкретное предложение like совпадает? Любые идеи будут высоко оценены.
Мой выбор оператора:
SELECT `WordText` FROM `Words` WHERE `WordText` LIKE 'alpha%' OR `WordText` LIKE 'gamma%';
Я ищу что-то вроде этого:
SELECT `WordText`, PositionInArray FROM `Words` WHERE `WordText` LIKE 'alpha%' (IF MATCH THEN PositionInArray=0 -- alpha's position in my array) OR `WordText` LIKE 'gamma%' (IF MATCH THEN PositionInArray=2 - gamma's position in my array);
Когда эта строка возвращается, я могу сразу перейти к WordArray [PositionInArray] .ToUpper () и узнать, что это слово соответствует.
Большое спасибо!