2014-10-26 112 views
0

我有一个奇怪的问题,我不完全确定它在哪里。我有一个简单的嵌套的where子句如下:MyBatis和Nested 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工作台此查询,我得到2行返回。但是当我把这个查询放入一个mybatis映射文件中时,没有行被返回。我通过打开java.sql调试并在selectList方法之前放置一个断点,排除了代码中的某些内容。我得到的输出如下:

2014-10-26 18:21:20,420 | DEBUG | [java.sql.Connection] | ==> 准备:SELECT * FROM events WHERE(e_start_date_and_time> =?AND e_end_date_and_time < =>?)AND(e_name LIKE?OR e_description LIKE?or e_location LIKE?)2014-10-26? 18:21:20,726 | DEBUG |

[java.sql.PreparedStatement] | ==>参数:2014-09-11 20:16:00.0(Timestamp),2014-09-12 20:16:00.0(Timestamp),“Some message”(String),“Some message”(String), “一些消息”(字符串)

有没有人有任何想法,为什么这可能是?

+0

你可以尝试使用''一些message'',而不是' “一些信息”'? – Payam 2014-10-26 20:11:13

+0

我仍然有同样的问题。 – EmeraldAegis 2014-10-26 20:35:14

回答

0

试试这个:

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