SELECT语句返回零 [英] SELECT Statement Return Zero
本文介绍了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屋!
查看全文