使用LIKE运算符将SQL查询转换为带有过滤器的SQL查询

时间:2012-01-20 08:49:12

标签: mysql sql

是否可以将LIKE运算符的SQL查询转换为仅使用相等和不等式过滤器而不是LIKE运算符的SQL查询。两个查询的输出必须相同。

如果有可能,怎么做?

我正在使用MySQL数据库。

我尝试过解决方案但没有成功。

5 个答案:

答案 0 :(得分:1)

不使用任何function(正如你在@jonlester的回答中所说的那样),你不可能做你想做的事。

使用简单函数执行此操作的方法如下:

select
  mycol
from
  mytbl
where 
  INSTR(mycol,test) > 0

答案 1 :(得分:0)

我不明白你的问题,但你可以用这种方式使用mysql函数:

select
  mycol
from
  mytbl
where 
  mycol like "test%"

将与:

相同
select
  mycol
from
  mytbl
where 
  left(mycol,4) = "test"

答案 2 :(得分:0)

你有两个选择......

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

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

祝你好运!干杯!!!

答案 3 :(得分:0)

如果您在查询列时使用LIKE查找子元素,那么您可以将这些子元素拆分为单独的列它们被插入/更新以允许在搜索条件中使用相等运算符。

答案 4 :(得分:0)

在您指定要求时,我认为您应该朝着整合全文索引的方向发展。

IE中。看看像SOLR,Lucene或类似的解决方案。您可能希望从此处Search Engine - Lucene or Solr开始 - 并点击/ google自己的方式。