Ibatis里面用in写SQL语句,问什么报下面的错

Struts Problem Report
Struts has detected an unhandled exception:

Messages: Unknown column '???????? in 'where clause'
--- The error occurred while applying a parameter map. --- Check the statisticsQuery.getProductlineStatistices-InlineParameterMap. --- Check the statement (query failed). --- Cause: java.sql.SQLException: Unknown column '???????? in 'where clause'
我的sql语句是:
SELECT `id`, `productName`, `productNumber`, `callingNumber`,`localCost`, `longCost`, `internationCost`, SUM(`feeTotal`) AS feeTotal, `month` FROM `boss_productline_statistice` WHERE MONTH BETWEEN #beginmonth# AND #endmonth# and productName in ($productName$) GROUP BY productName LIMIT #beginNum#,#endNum#
他一直报Unknown column '???????? in 'where clause'这样的错误

第1个回答  推荐于2016-04-09
ibatis sql in 操作(iterate属性)

1、使用iterate属性,status为数组。

<isNotNull property="status">
<![CDATA[ status in ]]>
<iterate property="status" conjunction="," open="(" close=")">
#status[]#
</iterate>
</isNotNull>

2、使用$,但这种写法存在一定的风险,可能会引起sql注入。

SELECT * FROM test WHERE status in ($status$);本回答被提问者采纳
第2个回答  2012-05-24
dao中判断传入数组是否为null,若为null不做操作,反之直接可以在xml中写下列代码:
<select id=“” >
SELECT * FROM test WHERE status in
<iterate open="(" close=")" conjunction=",">#[]#</iterate>
</select>
第3个回答  2011-07-06
看字面的意思 是未知的字段 column '???????? in 'where clause'
你的字段是传入的么.. 你把你的sql语句放上来看看

Ibatis里面用in写SQL语句,问什么报下面的错
1、使用iterate属性,status为数组。<isNotNull property="status"> <![CDATA[ status in ]]> <iterate property="status" conjunction="," open="(" close=")"> status[]<\/iterate> <\/isNotNull> 2、使用$,但这种写法存在一定的风险,可能会引起sql注入。SELECT * FROM test WHERE status ...

iBATIS 用informix数据库 怎么写like SQL 。用where columnname like...
select * from tbl_school where school_name like '%'||name||'%'

使用ibatis ,运行这段sql一直报错,ORA-00933,大家帮我看看是那的错误...
sql是这样 select * from test where and test.username=#username# and test.password=#password# where 后多了and 所以执行报错

ibatis 中怎么写这句sql:select @myWidth:=right_value-left_value+...
<isNotEmpty prepend="and" property="result"> <![CDATA[ SITENO in ]]> <iterate property="result" conjunction="," open="(" close=")"> result[]<\/iterate> <\/isNotEmpty> <\/dynamic>

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

my Batis 动态sql里边的 && 和|| 大于小于 怎么标示?
在ibatis配置文件写SQL语句的时候对于一些比如“<”,">","<>","&"," ' "," " "是不能够识别的,并且会抛异常。一般可以如下改写:< < > > <> <> & & ' '" "

ibatis 中SQL语句传参数时 id=#id#与id=$id$ 有区别么?
是占位符 字符串拼接 如果id = 3 id = #{id} 生成的sql语句是 id = ?使用的是PreparedStatement,执行时,通过setXXX方法,将值加入在sql语句,如setInt(1, 3)id = ${id} 生成的sql语句是 id = 3 直接拼接成sql语句,做的是字符串拼接操作 ...

使用ibatis编程式事物,不回滚
sqlMapClient.insert("addGoods", goods);...你所写其他sql语句 sqlMapClient.commitTransaction();} catch (SQLException e) { e.printStackTrace();goods.setRespCode("1");goods.setRespMsg("添加商品失败:提交事务出现异常,事务回滚");} finally { try { sqlMapClient.endTransaction();} catch (...

ibatis配置文件中update语句的写法?
ibatis标签提供生成sql的功能,没有标签满足你的需求。但是可以从sql的角度解决,像是你用select的时候的1=1的处理方式。我是这么搞的 update user set id = id <...> where id = #{id}

在ibatis中在sql语句判断的时候isEqual和isNull的区别是什么地方
你如果用 <isNotNull prepend="AND"property="id"> a.id=#id <\/isNotNull> 即使你在bean中不设置id的值,id的初始值也是0而不是null;所以这样配置a.id会等于0 而你把name变量用isNotNull这样配置,name如果不设置值,初始就是null,name的条件不就添加在sql中;isEqual相当于equals,数字用得...

相似回答