好的,我有一个快速的问题。我使用PDO与MySQL数据库进行通信。使用BETWEEN和两个日期作为变量很容易:
$db->query("SELECT * FROM awesome WHERE date BETWEEN :start AND :end");
当我有一个日期和两列时,我认为不容易。无论我多么大声地说,这都行不通:
$db->query("SELECT * FROM awesome WHERE :one_date BETWEEN start_col AND end_col");
有没有一种方法可以使用BETWEEN而不会恢复到像......那样糟糕的东西?
$db->query("SELECT * FROM awesome WHERE '$one_date' BETWEEN start_col AND end_col");
或者我应该坚持在这种情况下不使用BETWEEN?
$db->query("SELECT * FROM awesome WHERE start_col<=:one_date1 AND end_col>=:one_date2")
谢谢!
答案 0 :(得分:1)
BETWEEN仅适用于一列和两个值。
但你的最后一种方法应该有效。这至少是要走的路
$db->query("SELECT * FROM awesome" .
" WHERE start_col <= :one_date1 AND end_col >= :one_date2"
);
使用命名参数时,您还应该能够使用相同的名称两次,只需要绑定一次。
<强>更新强>
好吧,只是测试它并为我工作,col1和col2之间的“WHERE'值'”。 (测试postgres与datetime,mysql与整数)