Задать вопрос
Protossan
@Protossan
студент

Какой SELECT будет быстрее и менее напряжным?

В код передается JSON массив типа ["Sony","Audi","Android"] и так на 1000 записей. В таблице posts имеется около 200 000 записей и они имеют тайтлы типа Sony , audi - т.е. точное соответствие словам из массива.
Мне надо выбрать в массив те записи которые совпадут. Как сделать лучше - перебором по JSON и делать запрос SELECT * from posts whete title='$var'
или один запрос
SELECT * from posts where (title LIKE '$var1' or title LIKE '$var2' ... title LIKE '$var1000')
?

Или есть какие-то более красивые и варианты
  • Вопрос задан
  • 123 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 3
dzheka3d
@dzheka3d
SELECT * FROM `posts` WHERE `title` IN ('$var1', '$var2', '$var3')
Ответ написан
T_y_l_e_r
@T_y_l_e_r
where title = $var1 or title=$var2...
и так до 100 вариантов
разбить в цикле на запросы по 100 вариантов записей
title сделать индексом
Ответ написан
@entermix
Если значения в массиве соответствуют значениям в таблице, почему вы используете "Like", а не "="? Так-же можно использовать оператор IN

SELECT * from posts whete title IN  (<?= implode($array, ','); ?>);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы