首页 新闻 搜索 专区 学院

关于like的用法

0
悬赏园豆:10 [待解决问题]

这是我要向存储过程传递的条件b.shenhe=1 and b.ispay=0 and b.baohuoren like 'abc%',但是程序报错  “字符串 'ab)' 后的引号不完整。
'ab)' 附近有语法错误。
字符串 'ab) order by b.datetime desc' 后的引号不完整。
'ab) order by b.datetime desc' 附近有语法错误。”这是为什么?
我把like换成='abc'是不会出错的

问题补充:

我发现添加or也会出现问题,在数据库可以执行,就是程序给向数据库存储过程传值出错

王涛1的主页 王涛1 | 初学一级 | 园豆:148
提问于:2012-11-05 22:43
< >
分享
所有回答(7)
0

字符串拼接的不对啊

飞来飞去 | 园豆:2057 (老鸟四级) | 2012-11-05 22:49

能说的详细点吗?单引号下面是字符串可以,但是加上%就会出错

支持(0) 反对(0) 王涛1 | 园豆:148 (初学一级) | 2012-11-05 22:57
0

你换成 like '%abc%'   也不回出错的

luckytjx | 园豆:204 (菜鸟二级) | 2012-11-05 22:53

支持(0) 反对(0) 王涛1 | 园豆:148 (初学一级) | 2012-11-05 22:55
0

1.调试看生成的sql有没有问题

2.用sql profile监控执行的sql是什么样的

向往-SONG | 园豆:4853 (老鸟四级) | 2012-11-05 23:06
0

你的存储过程有问题呗,你把存储过程贴出来也许能帮上你

田林九村 | 园豆:2367 (老鸟四级) | 2012-11-06 07:54
0

你调试的时候,有了完整的sql语句,然后放到数据库中执行,

或者你可以把你的sql语句贴到这边来,大家看看

chenping2008 | 园豆:9836 (大侠五级) | 2012-11-06 09:00
0

应该不是like和%的问题,建议你只保留where语句,然后测试一下,尽量排除其他因素……

再有一点,你是用的是什么数据库,查看一下该数据库对like和%有没有什么特殊的使用要求……

ms_water | 园豆:510 (小虾三级) | 2012-11-06 09:01
0

like的运用场合主要在模糊查询的时候,一般以查询字符串居多,这里据一些例子来说他的一般用法:

例1,查询name字段中包含有“明”字的。   

select * from table1 where name like '%明%'  

这里不要使用*来代替,一般在使用0个或者任意个字符构成的字符串的时候最好使用%

不过在首或尾使用可以相互替换,如果在头尾同时使用的话,就必须要使用% 

例2,查询name字段中以“李”字开头。   

select * from table1 where name like '李*'  

或者

select * from table1 where name like '李%'  

例3,查询name字段中含有数字的。   

select * from table1 where name like '%[0-9]%'   

例4,查询name字段中含有小写字母的。   

select * from table1 where name like '%[a-z]%'   

例5,查询name字段中不含有数字的。   

select * from table1 where name like '%[!0-9]%'

在 水 一 方 | 园豆:1097 (小虾三级) | 2012-11-06 09:45
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册