当我在 MS Access 中运行查询时,我可以愉快地使用这样的查询:
SELECT clients.* FROM clients WHERE active=True;
或者
SELECT clients.* FROM clients WHERE active=-1;
但不是
SELECT clients.* FROM clients WHERE active=1;
另外,假设我想使用 PDO 查询数据库,我可能会使用准备好的语句:
$db->prepare('SELECT clients.* FROM clients WHERE active=:isactive;');
$db->bindValue(':isactive', True); //Does not work
$db->bindValue(':isactive', 1); //Does not work
$db->bindValue(':isactive', -1); //Does work
因此,即使true
在向 Access 发送普通查询时有效,如果仅绑定-1
或0
将适用于布尔值。
为什么会这样,为什么-1
代表true
什么时候1
通常true
在其他语言/数据库中表示?