MyBatis和嵌套Where子句

时间:2014-10-26 18:40:43

标签: java mysql mybatis

我有一个奇怪的问题,我不完全确定它在哪里。我有一个简单的嵌套where子句如下:

SELECT * 
FROM events 
WHERE 
(      e_start_date_and_time >= '2014-09-11 20:16:00.0' 
   AND e_end_date_and_time <= '2014-09-12 20:16:00.0'
) 
AND 
( 
       e_name LIKE "Some message" 
    OR e_description LIKE "Some message" 
    OR e_location LIKE "Some message" 
)

当我在mysql workbench中运行此查询时,我返回了2行。但是当我将此查询放在mybatis映射文件中时,不会返回任何行。我通过启用java.sql调试并在selectList方法之前放置断点来排除代码中的某些内容。我得到的输出如下:

  

2014-10-26 18:21:20,420 |调试| [java.sql.Connection] | ==&GT;   准备:SELECT * FROM事件WHERE(e_start_date_and_time&gt; =?AND e_end_date_and_time&lt; =&gt;?)AND(e_name LIKE?或e_description LIKE?或e_location LIKE?)2014-10-26?   18:21:20,726 | DEBUG |

     

[java.sql.PreparedStatement] | ==&GT;参数:2014-09-11 20:16:00.0(时间戳),2014-09-12   20:16:00.0(时间戳),&#34;某些消息&#34;(字符串),&#34;某些消息&#34;(字符串),&#34;某些消息&#34;(字符串)

有谁知道为什么会这样?

1 个答案:

答案 0 :(得分:0)

试试这个:

 e_name LIKE '%Some message%' 
    OR e_description LIKE '%Some message%' 
    OR e_location LIKE '%Some message%'