如何在SQLite中使= NULL工作?

cha*_*m15 7 c++ sql sqlite

鉴于下表:

Table: Comedians
=================

Id    First    Middle    Last
---  -------  --------  -------
 1     Bob      NULL     Sagat
 2    Jerry     Kal      Seinfeld      

我想做以下准备好的查询:

SELECT * FROM Comedians WHERE Middle=?

为所有案件工作.它目前不适用于我通过NULL传递的情况sqlite3_bind_null.我意识到实际搜索NULL值的查询使用IS NULL,但这意味着我不能在所有情况下使用准备好的查询.我实际上必须根据输入更改查询,这在很大程度上违背了准备好的查询的目的.我该怎么做呢?谢谢!

dan*_*n04 7

您可以使用IS运算符代替=.

SELECT * FROM Comedians WHERE Middle IS ?
Run Code Online (Sandbox Code Playgroud)

  • 该死的,那只在SQLite上吗?这对其他SQL来说太有用了...... (2认同)
  • @dotje:在PostgreSQL中你可以使用`a IS NOT DISTINCT FROM b`.比'a = b`略贵. (2认同)