在查询数据库时,有可能字段数据为空,所以自然想到这样的逻辑
....
local publish_total_count = rows[i].PUBLISH_COUNT;
....
if publish_total_count ==nil then
yx_new_table.submit_info = ngx.encode_base64("0/0");
else
yx_new_table.submit_info = ngx.encode_base64(submit_count.."/"..publish_total_count);
end
但是总是在publish_total_count 为空时 执行第二句。
问了一下同事,要修改为
if not publish_total_count then
yx_new_table.submit_info = ngx.encode_base64("0/0");
else
yx_new_table.submit_info = ngx.encode_base64(submit_count.."/"..publish_total_count);
end
其中 not publish_total_count 表示publish_total_count 为空的时候才执行 yx_new_table.submit_info = ngx.encode_base64("0/0");
原因在lua中 nil和false返回值都是假