我正在编写一个程序,需要在围棋中过滤数据库中的退款记录.我的业务需求是,当q.RefundStatus过滤条件为0时,我希望该条件包含在查询中.我当前的代码如下所示:

if q.RefundStatus != nil {
    repos.Condition.RefundStatus = *q.RefundStatus
}

我注意到,当q.RefundStatus的值为0时,此代码不会将条件添加到查询中.但是,当q.RefundStatus的值非零时,条件会按预期添加到查询中.所以,我需要帮助解决这个问题.

如何修改代码以满足以下要求:

当q.RefundStatus的值为0时,将条件包含在查询中.

我try 了其他方法,例如在条件语句中判断*q.RefundStatus!=0,但似乎不能解决问题.我希望有人能提供一个有效的解决方案.谢谢!

推荐答案

根据您的问题,我知道您需要使用GORM过滤围棋程序中的退款记录,并考虑q.RefundStatus的值,即使它是0.您遇到的问题是由GORM忽略值为0的查询引起的.巧合的是,我几天前遇到了类似的问题,并找到了一个解决方案,应该也适用于您的情况.

您可以按如下方式修改代码:

if q.RefundStatus != nil {
    repos.SpecialCondition.RefundStatusIn = []int8{*q.RefundStatus}
}

通过使用切片,您可以告诉GORM在查询中包括条件,即使值为0.这种方法解决了我最近面临的问题,应该也适用于你的情况.现在,您的程序将根据需要过滤记录.如果您有任何进一步的问题或需要进一步澄清,请随时提问.我希望我能帮到你.

Mysql相关问答推荐

根据键的数量,SQL Json字段分为行

在mySQL中使用子查询和WHERE子句的JOIN

配置MySQL服务器以管理数千个表

SQL:CAST与窗口函数组合导致语法错误

MySQL嵌套的内连接使查询变得很慢-解决方案?

获取每个参数的记录,不重复

如何在 MySQL 中使用从 SELECT IF 返回的布尔值

需要按总金额检索前 3 个供应商,每个类别 - 子类别

将sql查询转换为sequelize

判断一列中的多个值并返回值 1 或 0

由于长时间操作而断开连接后,我的 sql 查询是否继续执行?

有没有更好的方法在无限滚动的网页上呈现获取的提要数据?

如何在任何连续范围内获得最大值

动态创建内联 SQL 表(用于排除左连接)

什么是 PyMySQL,它与 MySQLdb 有何不同?它会影响 Django 部署吗?

在 Mac 上设置 Laravel php artisan migrate 错误:没有这样的文件或目录

加快 mysql 转储和导入

判断多个列的一个值

MySQL:唯一字段需要是索引吗?

表被指定了两次,既作为更新的目标,又作为 mysql 中数据的单独源