我有一个查询:
SELECT * FROM MY TABLE WHERE END_TIME BETWEEN ? AND ?
当END_TIME是:
`END_TIME` datetime default NULL,
当我移动我的表时,此查询停止正常工作:
ENGINE=InnoDB
从 MyISAM 迁移到 InnoDB 会导致问题吗?
我有一个查询:
SELECT * FROM MY TABLE WHERE END_TIME BETWEEN ? AND ?
当END_TIME是:
`END_TIME` datetime default NULL,
当我移动我的表时,此查询停止正常工作:
ENGINE=InnoDB
从 MyISAM 迁移到 InnoDB 会导致问题吗?
好吧,您更改了数据库引擎,现在以不同的方式处理 null。
SELECT * FROM MY TABLE WHERE END_TIME BETWEEN '2013-01-01 AND ?
有效查询
SELECT * FROM MY TABLE WHERE END_TIME BETWEEN '2013-01-01' AND null
将始终返回 0 行
将您的查询重写为
SELECT * FROM MY TABLE WHERE END_TIME BETWEEN ? AND now()
或者
SELECT * FROM MY TABLE WHERE END_TIME >=0