CNode

mysql查询空数据也返回true

问答
EEnzo1994发布于8 年前最后回复8 年前4 回复4648 浏览0 收藏

已经用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)

M
MiYogurt#1·8 年前

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

S
shenqidebaozi#2·8 年前

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

H
heguangda#3·8 年前

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

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

Q
qishuangyan#4·8 年前

nnn

参与回复
登录后即可参与回复。登录