mysql查询空数据也返回true
发布于 6 年前 作者 Enzo1994 3660 次浏览 来自 问答

已经用promise封装query了,测试成功可以取到存在的数据

但是 我想查询一个不存在的行 (open_id = ‘zzz’)

image.png

代码如下:

module.exports = async ctx => {

  let data;
  try {
    data = await mysql.query("SELECT * FROM user WHERE open_id = 'zzz'");
  } catch (err) {
    ctx.state.data= { message: err.message };
    ctx.status = err.status || 500;
  }
  if (data){
    ctx.state.data = '已存在'
  }
  else{
    ctx.state.data = '不存在'
  }

我都把数据库清空了,返回的也是已存在??

image.png

image.png

想请问大佬,有没有什么解决方案,如果不存在不是要返回false的吗,小弟在此谢过!

4 回复

数据空又不是错误,数组判断 length

应该取行数吧,返回true是代表语句执行成功吧?

if(data.length == 0)我一般这样判断的

我习惯这样封装mysql,你参考一下,不知道好不好 3.png 调用的时候是 var {err,data} =await query(sql)这样子

回到顶部