求大神指教!数据库模糊查询!怎么用多配少

求大神指教!数据库模糊查询!如何用多配少
select * from table where  c1  like  %n1%
其中n1的长度大于要匹配的c1中的长度,那需要如何才能把c1中符合条件的查出来!
------解决方案--------------------

引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

楼主你想得到什么样的效果?
n1的字段中包含c1的全部字段?
还是c1是列名,n1是字符串?





c1是一个列名   n1为一个字符串

那就是说
你的需求是:
c1列中的数据,包含n1字符串中的一部分就输出?
还是 c1中数据的长度小于n1字符串 就输出?


SELECT
*
from 
test
where 
LOCATE(c1,n1)

n1记得加单引号
------解决方案--------------------
引用:
Quote: 引用:


Quote: 引用:

Quote: 引用:

Quote: 引用:

Quote: 引用:

楼主你想得到什么样的效果?
n1的字段中包含c1的全部字段?
还是c1是列名,n1是字符串?





c1是一个列名   n1为一个字符串

那就是说
你的需求是:
c1列中的数据,包含n1字符串中的一部分就输出?
还是 c1中数据的长度小于n1字符串 就输出?


SELECT
*
from 
test
where 
LOCATE(c1,n1)

n1记得加单引号



只要包含就输出!
但是,像这种情况也要输出
例如:n1   =  “北京中关村股份有限公司”   
但是也要输出“北京中关村”


你这个结果其实不是sql语句直接查询的结果,可能你想要的是输入“北京中关村股份有限公司”,把所有相关的信息都显示出来,类似关键字搜索并且带有一点自动联想的意思。
这块就不是sql能做的了,需要你在进行数据库查询之后找到关键字,利用这个关键字去查询数据库。
就像:输入”中华人民共和国“,会查出”中国“一样。
------解决方案--------------------
例如:n1   =  “北京中关村股份有限公司”   
但是也要输出“北京中关村”

这样就像在百度里输入“北京中关村股份有限公司”  ,结果中包含“北京中关村”一样。
这个我觉得是需要建立一个关键字库,根据输入的关键字查询所有相关的条目。