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

求个sql 模糊查询语句
我现在有一个表A  记录了一些单据的信息 里面有个留言字段msg(可能会出现 诸如"请发申通","申通,谢谢"之类的)
现在想做的是   怎么找到A里面留言要求发"申通速递"的表
现在主要困在 
:
首先,买家的留言可能各种各样  申通速递可能会出现在开头,中间,结尾....
然后 买家的留言可能又不是 完整的"申通速递"四个字  很可能就只出现了"申通"   如果是"中国邮政速递"的话 甚至可能会出现"请发邮政" 这种情况
就这样....
------最佳解决方案--------------------
select * from 表A  where msg like '%申通速递%'
------其他解决方案--------------------
select  *  from A where charindex('申通',msg)>0
------其他解决方案--------------------
select  *  from msg where msg like '%申通%'

------其他解决方案--------------------
select * from 表A where msg like '%申通%'
------其他解决方案--------------------
那你最好有个各个快递公司的对应表,最好有全称简称。然后关联
------其他解决方案--------------------
没把下拉列表的值也保存在表里吗? 
------其他解决方案--------------------
select * from 表A where msg like '%申通%'
这样不就结了嘛,包含申通这个字眼的就都找到了嘛
------其他解决方案--------------------
我是这样理解的,“请发申通”和要求发"申通速递",虽然双引号内的留言不完全一样,但客户的意思是一致的,都要求“申通”来发,那就按照2楼或者3楼的方法不就行了?
------其他解决方案--------------------
引用:
select * from 表A  where msg like '%申通速递%'


看下貌似都是这种形式  可能是我表达的不清楚  就是我现在有个下拉列表 里面有各种不同的物流公司 就假如有两家的话(申通物流,中国邮政速递) 这两种  留言可能会出现"请发申通" 或者 "请发邮政" 这样的话  关键字就会可能出现在开头,结尾,中间  我就取不到 like里面的字符串啊..
------其他解决方案--------------------
引用:
那你最好有个各个快递公司的对应表,最好有全称简称。然后关联

要是能固定相应的全称 简称规则就不这么挠头了  就是不能固定留言里面的物流公司的简称 才这么麻烦的
------其他解决方案--------------------
我是说那个表最少两列:简称、全称。全称可以找注册公司名,简称可以使用比如申通这样,总不会有一个申字就说是申通吧
------其他解决方案--------------------
引用:
select * from 表A where msg like '%申通%'

------其他解决方案--------------------
http://topic.csdn.net/u/20121031/18/f7328c3c-2f05-4f11-a6cc-3c3143f900ff.html同时帮忙看看这个问题
------其他解决方案--------------------
SELECT A FROM table WHERE A LIKE '%你要輸入的關鍵%'
------其他解决方案--------------------
select  *  from msg where msg like '%申通%'
select  *  from msg where msg like '%邮政%'
select  *  from msg where msg like '%圆通%'
.........
等等  就可以了
------其他解决方案--------------------
select  *  from A where msg like '%申通%'
 select  *  from A where msg like '%邮政%'