<select id="BBSManageDAO.selectBbsSchdulManageList" parameterClass="BoardVO" resultMap="schdulProgramList">
<![CDATA[
SELECT NTT_ID, BBS_ID, NTT_NO, NTT_SJ, SUBSTR(NTT_CN,1,100) NTT_CN, CATEGORY, FRST_REGIST_PNTTM, NTCE_BGNDE, NTCE_ENDDE
,FIELD1, EVN_END_DATE, FIELD2, TELL_NO, USE_AT
FROM TN_BBS A
WHERE 1=1
AND A.USE_AT = 'Y'
AND (
BBS_ID = 'education01_main' or BBS_ID = 'course01_main' or
BBS_ID = 'feestival01_main' or BBS_ID = 'reading01_main'
)
]]>
<isNotEmpty property="searchCondition2">
<isEqual property="searchCondition2" compareValue="DAILY" prepend="AND">
<![CDATA[ #searchSdate# >= FIELD1 AND #searchSdate# <= EVN_END_DATE ]]>
</isEqual>
isEqual property="searchCondition2" compareValue="WEEK" prepend="AND">
<![CDATA[ (#searchBgnDe# <= FIELD1 AND #searchEndDe# >= FIELD1) OR (#searchBgnDe# <= EVN_END_DATE AND #searchEndDe# >= EVN_END_DATE) OR (#searchBgnDe# >= FIELD1 AND #searchEndDe# <= EVN_END_DATE) AND USE_AT='Y']]>
</isEqual>
</isNotEmpty>
<![CDATA[
ORDER BY FIELD1 ASC
]]>
</select>
这是我SQL_Oracle.xml
如果文章符合条件(条件是约会日期),此查询是关于选择某些事件的文章。
我有两个API。一个是每天,另一个是每周。
在每日查询中,用户会发送一个特定日期(#searchSdate#
)作为参数,并在当天发送数据库搜索事件。
在每周用户中发送一周,以便他们向服务器提供一周的开始日期和一周的结束日期,并发回该周的事件。
问题是我写了
WHERE 1=1
AND A.USE_AT = 'Y'
当我使用WEEK
搜索时,他们会向我发送带有'N'USE_AT数据的事件
我不在乎DAILY
是否向我发送了相同的数据。但他们没有
最后,当我将 AND USE_AT='Y
'添加到他们工作的WEEK
搜索结束时。
但我仍然不知道为什么我的ibatis语法会出现一些错误。
有谁知道这是什么问题?
答案 0 :(得分:0)
上面的查询可能存在问题。尝试使用或比较OR比较中包含的所有问题来修改查询:如下所示
( (#searchBgnDe# <= FIELD1 AND #searchEndDe# >= FIELD1)
OR (#searchBgnDe# <= EVN_END_DATE AND #searchEndDe# >= EVN_END_DATE)
OR (#searchBgnDe# >= FIELD1 AND #searchEndDe# <= EVN_END_DATE) )
AND USE_AT='Y'
您的SQL_Oracle.xml
文件也有xml问题,因为第二个isEqual
未正确标记