SELECT语句返回零 [英] SELECT Statement Return Zero

查看:111
本文介绍了SELECT语句返回零的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

此语句返回正确的数字,但是当没有结果时,我需要它返回"0" ...我尝试了执行此操作的标准方法,但是它没有调试.现在,当未返回记录时,它仅显示空白.这是一个控制台应用程序.

This statement returns the correct numbers, but when there are no results I need it to return ''0''...I tried the standard way to do it but it doesn''t debug. Right now it just shows a blank when a record isn''t returned. This is a console app.

mysql_query(conn,"SELECT * FROM tblURL WHERE IP = ''192.168.1.1'',''0''");
		my_ulonglong i = 0;
		res_set = mysql_store_result(conn);
		my_ulonglong numrows = mysql_num_rows(res_set);
		while ((row = mysql_fetch_row(res_set)) != NULL){
		printf("%s\n",row[i] != NULL ?
        row[i] : "NULL"); 



[edit]添加了代码块,并删除了内联代码-OriginalGriff [/edit]



[edit]Code block added, inline code removed - OriginalGriff[/edit]

推荐答案

为什么不只是测试"numrows"并查看其是否为零?
Why don''t you just test "numrows" and see if that is zero?


使用从tblURL WHERE IP ="192.168.1.1"中选择COUNT(*)".它将始终返回1行1列的计数.

通过mysql命令提示符:

mysql>从tblURL WHERE IP =``192.168.1.1''中选择COUNT(*);
+ ---------- +
| COUNT(*)|
+ ---------- +
| 9 |
+ ---------- +

如果有9行,其中IP为"192.168.1.1".如果为0(零),则结果为.

mysql>从tblURL WHERE IP =''80 .66.44.22''中选择COUNT(*);
+ ---------- +
| COUNT(*)|
+ ---------- +
| 0 |
+ ---------- +

Use "SELECT COUNT(*) FROM tblURL WHERE IP = ''192.168.1.1''". It will ALWAY return 1 row and 1 column where the count is.

via mysql command prompt:

mysql> SELECT COUNT(*) FROM tblURL WHERE IP = ''192.168.1.1'';
+----------+
| COUNT(*) |
+----------+
| 9 |
+----------+

If there is 9 rows where IP is ''192.168.1.1''. If there is 0 (zero) result will be.

mysql> SELECT COUNT(*) FROM tblURL WHERE IP = ''80.66.44.22'';
+----------+
| COUNT(*) |
+----------+
| 0 |
+----------+

mysql_query(conn,"SELECT COUNT(*) FROM tblURL WHERE IP = ''192.168.1.1''");
res_set = mysql_store_result(conn);
my_ulonglong numrows = mysql_num_rows(res_set);

if (numrows > 0)
{
  row = mysql_fetch_row(res_set));
  printf("Count is: %s\n",row[0]);
}


就像OriginalGriff所说的那样,测试数字为零要比编写一个复杂的sql返回0容易得多.记住您正在执行select *,这意味着您的返回将具有一堆字段(可能),或者在单个字段为0的情况下.检查返回的行要容易得多.
Like OriginalGriff said, it is much easier to test numrows for zero than to write a complicated sql to return 0. Rememeber you are doing select *, which means your return will have a bunch of fields (possibly) or in the case of 0 single field. It is much easier to check for returned rows.


这篇关于SELECT语句返回零的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆