Как получить количество строк, когда определенное поле пусто - PullRequest
2 голосов
/ 06 сентября 2011
RowID       TimeReceived    TimeRead    tbl_user_UserID     tbl_message_MsgID

  5     2011-09-06 11:16:20   NULL               2                1
  6     2011-09-06 11:17:04   NULL               3                1
  7     2011-09-06 11:17:19   NULL               100              1

Это моя таблица

 command = new MySqlCommand("SELECT COUNT(Distinct RowID) FROM tbl_usermessage WHERE TimeRead= NULL AND tbl_message_MsgID=@Value1", connectionString);
         command.Parameters.Add("@value1", MySqlDbType.Int32, 25);
         command.Parameters["@value1"].Value = MessageID;
         int nnnID = Convert.ToInt32(command.ExecuteScalar());

Я хочу посчитать строку, в которой считанное время равно нулю, это дает мне 0 в качестве вывода, где это должно быть 3. Где я иду неправильно.я установил значение по умолчанию для времени, читаемого как ноль.

Ответы [ 3 ]

3 голосов
/ 06 сентября 2011

Запрос на подсчет

select count(Distinct RowID) from table where TimeRead is null
2 голосов
/ 06 сентября 2011

Используйте «is NULL» вместо «= NULL»

SELECT COUNT(Distinct RowID) FROM tbl_usermessage WHERE TimeRead is NULL ...

Также проверьте правильность вашего параметра @value1!

1 голос
/ 06 сентября 2011

Ваш SQL неверен.Вы можете проверить NULL, используя IS NULL:

 command = new MySqlCommand("SELECT COUNT(Distinct RowID) FROM tbl_usermessage WHERE TimeRead IS NULL AND tbl_message_MsgID=@Value1", connectionString);
         command.Parameters.Add("@value1", MySqlDbType.Int32, 25);
         command.Parameters["@value1"].Value = MessageID;
         int nnnID = Convert.ToInt32(command.ExecuteScalar());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...