преобразование SQL-запроса с оператором LIKE в SQL-запрос с фильтрами - PullRequest
0 голосов
/ 20 января 2012

Возможно ли преобразовать SQL-запрос с оператором LIKE в SQL-запрос только с фильтрами равенства и неравенства, а не с оператором LIKE. Вывод обоих запросов должен быть одинаковым.

Если это возможно, как это сделать?

Я использую базу данных MySQL.

Я пытался найти решение, но безуспешно.

Ответы [ 5 ]

1 голос
/ 20 января 2012

Без использования какого-либо function (как вы указали в комментарии в ответе @jonlester) невозможно сделать то, что вы хотите.

Способ сделать это с помощью простой функции будет выглядеть так:

select
  mycol
from
  mytbl
where 
  INSTR(mycol,test) > 0
0 голосов
/ 20 января 2012

Поскольку вы указываете свои требования, я думаю, что вы должны смотреть в направлении интеграции полнотекстовых индексов.

Т.е.посмотрите на такие решения, как SOLR, Lucene или аналогичные.Возможно, вы захотите начать здесь Поисковая система - Lucene или Solr - и нажать / Google ваш путь оттуда.

0 голосов
/ 20 января 2012

Если вы используете LIKE для поиска подэлементов во время запроса столбца , тогда вы можете разбить эти подэлементы на отдельные столбцы во время их вставки / updated , чтобы разрешить использование оператора равенства в условиях поиска.

0 голосов
/ 20 января 2012

У вас есть два варианта ...

1. SELECT myColumn FROM myTable WHERE INSTR(myColumn,'myString') = 1

2. SELECT myColumn FROM myTable WHERE LOCATE('myString',myColumn) = 1

Удачи !!! Ура !!! * * 1004

0 голосов
/ 20 января 2012

Я не понимаю ваш вопрос, но вы можете использовать функции mysql следующим образом:

select
  mycol
from
  mytbl
where 
  mycol like "test%"

будет таким же, как:

select
  mycol
from
  mytbl
where 
  left(mycol,4) = "test"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...