ibatis 模糊查询语句。

select * FROM table where brand_jianpin like '%'||#jianpin#||'%' or brand_pinyin like '%'||#pinyin#||'%'
jianpin和pinyin为 参数 这样 做不到 模糊查询,语句该怎么改写?

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

2) 使用连接符。不过不同的数据库中方式不同。
mysql:
select * from table1 where name like concat('%', #name#, '%')

oracle:
select * from table1 where name like '%' || #name# || '%'

sql server:
select * from table1 where name like '%' + #name# + '%'
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-08-24

    要确保parameterClass中对应的参数跟你的like后面对应的参数保持一致,大小写都不能错

    resultClass中的参数要跟查询出来的‘*’中的保持一致,尽量不要写‘*’,因为如果你的resultClass中少写一个字段都会报错,所以你的resultClass中的参数有啥就把*写成一样的字段,以免犯了低级的错误,如果你的resultClass返回的是hashmap就令当别论了

第2个回答  2013-08-23
Ibatis的模糊查询不是应该这样写么?
like '%$name$%'本回答被提问者采纳
第3个回答  2013-08-23
ibatis语法是正确的,你看打的日志的语句放到数据库里面执行一下。看是没有数据还是传入的数据为乱码导致不能查询到。追问

action里返回的数据是全部数据,模糊查询没有起到作用。如果 不换成 模糊查询的话,可以查询出唯一的结果的。

追答

你发一个sql给我看下查了全部数据的。

追问

select * FROM table

追答

条件都没有啊

追问

select * FROM table where brand_jianpin like '%'||#jianpin#||'%' or brand_pinyin like '%'||#pinyin#||'%'

追答

你执行时,返回全部数据的时候ibatis的日志语句是什么?

需要使用iBATIS 写一条语句 多条件查询
isNotEmpty 的意思就是,如果字典里content这个值不为空,则输出此标记对的内容, prepend="and" 的意思就是,它和上边的条件用 and 连接 也就是说,你带几个条件,他就会输出几个条件。否则它不会输出任何条件,这就是ibatis的灵活之处。假如字典里有两个值,分别为(key=type,value=数学)(ke...

ibatis更新时where条件动态
1.<dynamic prepend="where"> ..<\/dynamic>标签,即可此标签中间部分任一个条件为true时,会向当前的sql语句中添加一个"where"的字符.2.若只有一个判断条件时,可以直接用:<isNotEmpty prepend="where" property="name"> name like '%$name$%'<\/isNotEmpty> 3.模糊查询:在通常情况下ibatis的参...

相似回答