首页 > 解决方案 > SQL NOW() 和 SQL 中的 created_at 是什么意思

问题描述

我被告知要测试某人的代码,当我传递一个 json 时,它会引发以下错误

错误:找不到行 select * from otp_log where verified_at is NULL and (NOW()-created_at)<? and email_otp = ? and mobile_otp = ? 300,5581

错误:未找到任何行

当我从邮递员发送 put 请求时出现此错误

{
    
    "signup_request_id": "36", 
    "email_otp": "5881"
}

现在我检查了我们的 sql 中有 otp_log 表,它包含已填充数据的 email_otp 和 mobile_otp 字段。

我使用的路由signup/verify顾名思义就是通过 otp 来验证用户的。

所以有人可以帮我解释这到底是做什么的。就像我为什么会收到错误(一般来说)?这是什么意思(NOW()-created_at

标签: mysqlsql

解决方案


这是一个有点长的评论。

这是写条件的一种奇怪方式。我认为更容易理解为:

select *
from otp_log
where verified_at is NULL and 
      created_at > now() - ? and
      email_otp = ? and
      mobile_otp = ?

我不知道300,4906,20102应该是什么。如果它存在于查询中,那么它将导致语法错误。否则,“未找到行”意味着它所说的:没有行符合where条件。


推荐阅读