【问题标题】:MyBatis and Nested Where ClauseMyBatis 和嵌套 Where 子句
【发布时间】:2014-11-03 13:08:26
【问题描述】:

我有一个奇怪的问题,我不完全确定它在哪里。我有一个简单的嵌套 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 |调试 | [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 |调试 |

[java.sql.PreparedStatement] | ==> 参数:2014-09-11 20:16:00.0(时间戳),2014-09-12 20:16:00.0(Timestamp), "Some message"(String), "Some message"(String), "Some message"(String)

有人知道为什么会这样吗?

【问题讨论】:

  • 你能尝试用'Some message'代替"Some message"吗?
  • 我还是有同样的问题。

标签: java mysql mybatis


【解决方案1】:

试试这个:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-22
    • 2021-07-05
    • 1970-01-01
    • 1970-01-01
    • 2015-10-20
    • 2017-08-27
    • 1970-01-01
    相关资源
    最近更新 更多