2014-10-26 22 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%'