日期:2014-05-17  浏览次数:20717 次

sql查询处理
类似于搜索,从一个textbox里得到值,然后查询显示。比如 “手机”,这种很简单。但是里边有空格的话,比如“lumia  720”,那么和数据库里的值就不相同了。
注意:我知道查询 lumia%720, 但问题是这是一个字符串,可能会有很多个词组成,该怎么处理或者写SQL语句?

------解决方案--------------------

LIKE '%lumia[ ]720%'
或者(如果关键词是用户输入,最好下面这种)
LIKE '%lumia/ 720%' ESCAPE '/' --ESCAPE指示将'/'视为转义符
 
------解决方案--------------------
你是想在一个很大的字符串中,得到 lumia 和 720 是么?
哎..伤不起哈...程序员的表达能力...

如果你只是想得到那两个词,那你就用那两个去分割字符串不就行了...
比如,
string pattern = @"(lumia
------解决方案--------------------
720)";
string[] result = pattern.Split();
看能分割就是能找到...其实我不是很懂你的意思...具体是干嘛...
------解决方案--------------------
引用:
Quote: 引用:


LIKE '%lumia[ ]720%'
或者(如果关键词是用户输入,最好下面这种)
LIKE '%lumia/ 720%' ESCAPE '/' --ESCAPE指示将'/'视为转义符
 

可能没说清楚,我的意思是怎么由这一个字符串得到各个词,比如lumia和720,然后又怎么写到sql语句里?也就是得到'%lumia/ 720%'。在购物网站和百度里边搜索都很自由啊,中间是 加号或者空格等都可以。

一开始我也以为是要想模糊查找,看了LZ这要求才知道LZ想的是获取字符前后的字符串,用个split()方法截取前后就可以得出前后的字符串了!
------解决方案--------------------
VS代码里面用split()方法,将各个可能出现的中间字符(空格,+,-,点,逗号之类的字符)分开,然后拼上 LIKE %字符1% OR LIKE %字符2%
最后将拼出来的条件字符串,拼加到“SELECT ... FROM .. WHERE  ”的后面,这样就能查询出你要的结果了。
------解决方案--------------------
你这个数据也是你插入数据库的把!如果是的话你在插入数据库的时候转义成html格式,然后搜索就不用这么麻烦了!