求大神指教!数据库模糊查询!怎么用多配少
求大神指教!数据库模糊查询!如何用多配少
select * from table where c1 like %n1%
其中n1的长度大于要匹配的c1中的长度,那需要如何才能把c1中符合条件的查出来!
------解决方案--------------------
n1记得加单引号
------解决方案--------------------
你这个结果其实不是sql语句直接查询的结果,可能你想要的是输入“北京中关村股份有限公司”,把所有相关的信息都显示出来,类似关键字搜索并且带有一点自动联想的意思。
这块就不是sql能做的了,需要你在进行数据库查询之后找到关键字,利用这个关键字去查询数据库。
就像:输入”中华人民共和国“,会查出”中国“一样。
------解决方案--------------------
例如:n1 = “北京中关村股份有限公司”
但是也要输出“北京中关村”
这样就像在百度里输入“北京中关村股份有限公司” ,结果中包含“北京中关村”一样。
这个我觉得是需要建立一个关键字库,根据输入的关键字查询所有相关的条目。
select * from table where c1 like %n1%
其中n1的长度大于要匹配的c1中的长度,那需要如何才能把c1中符合条件的查出来!
------解决方案--------------------
n1记得加单引号
------解决方案--------------------
楼主你想得到什么样的效果?
n1的字段中包含c1的全部字段?
还是c1是列名,n1是字符串?
c1是一个列名 n1为一个字符串
那就是说
你的需求是:
c1列中的数据,包含n1字符串中的一部分就输出?
还是 c1中数据的长度小于n1字符串 就输出?
SELECT
*
from
test
where
LOCATE(c1,n1)
n1记得加单引号
只要包含就输出!
但是,像这种情况也要输出
例如:n1 = “北京中关村股份有限公司”
但是也要输出“北京中关村”
你这个结果其实不是sql语句直接查询的结果,可能你想要的是输入“北京中关村股份有限公司”,把所有相关的信息都显示出来,类似关键字搜索并且带有一点自动联想的意思。
这块就不是sql能做的了,需要你在进行数据库查询之后找到关键字,利用这个关键字去查询数据库。
就像:输入”中华人民共和国“,会查出”中国“一样。
------解决方案--------------------
例如:n1 = “北京中关村股份有限公司”
但是也要输出“北京中关村”
这样就像在百度里输入“北京中关村股份有限公司” ,结果中包含“北京中关村”一样。
这个我觉得是需要建立一个关键字库,根据输入的关键字查询所有相关的条目。