日期:2014-05-19  浏览次数:20825 次

sql截取字符串问题
SQL code

select substr(g.name,1, instr(g.name, '_')-1) name from groups g where name=#value#



我以_截取前面的字符,假如我里面有数据abcdessdf_1,dsfsdf_2,234234_1,f2f2f32f_2,我洗要以_截取前面的数据,为什么
select substr(g.name,1, instr(g.name, '_')-1) name from groups g where name=#value#查询不到,如果我改成
select substr(g.name,1, instr(g.name, '_')-1) name from groups g where substr(g.name,1, instr(g.name, '_')-1)=#value#这样就可以查询的到,但是放到ibatis里面就不可以了,报sql错误,这是为什么?#value#是变量,我写成
select substr(g.name,1, instr(g.name, '_')-1) name from groups g where name="234234"这样查询不到,我用的java语言,ibatis框架,求高手解答

------解决方案--------------------
后面的name是字段名,不是select时的别名。
------解决方案--------------------
报sql错误就把sql打印出来。肯定拼错了。

where条件中 不认识别名的

你还没说用什么数据库