0

我正在尝试查询 MySQL 数据库以返回一些结果。例如,我有一个HTML表单,用户可以在其中输入一些搜索值并执行它。此表单包含两个字段:BodyQuery String(这些是我的数据库表的适当字段)。

我正在执行这样的查询:

select count(*) from Message;

结果是:7280

如果我执行这样的查询:

select count(*) from Message where body like '%%';

结果是:7280

身体没有任何null价值。

like但是,如果我在查询中添加另一个空:

select count(*) from Message where body like '%%' and queryString like '%%';

结果是:3353

我的queryString专栏包含一些null值,我猜这是造成这种情况的原因。我希望该查询返回的是相同的结果计数(7280)并忽略这些null值。如何使用 MySQL 实现这一点?

4

2 回答 2

1
WHERE ((body LIKE '%%') OR (body IS NULL))
and   ((queryString LIKE '%%') OR (queryString IS NULL))
于 2012-12-03T12:35:09.677 回答
1

您可以使用IFNULL功能:

select count(*) from Message where body like '%%' and IFNULL(queryString, " ") like '%%';
于 2012-12-03T12:31:02.893 回答