Перейти к содержанию

запрос mysql like in()


Рекомендуемые сообщения

Доброго времени суток,

встала необходимость построить запрос где будет много like:

...colm like 'str1%' or colm like 'str2%' or colm 'str3%' or colm like 'str4%'...

и так от 1 до 500 раз в зависимости от установок пользователя. При дублировании "or colm like " занимает довольно много места и возрастает количество инфы посылаемой на удаленный mysql сервер. Есть ли вариант сократить запроск примеру к синтаксису похожему на in('str1%','str2%'....)?

Пробовал REGEXP - но он очень медленный:

select * from tbl where colm REGEXP '^str1|^str2' order by rand() limit 20;.......20 rows in set (28.51 sec)select * from tbl where colm like "str1%" or colm like "str2%" order by rand() limit 20;.......20 rows in set (2.90 sec)
Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...