var caseParams TestCaseParam
tx := c.db
tx = tx.Where("case_id = ", caseParamEntity.CaseId)
err := tx.Debug().Find(&caseParams).Error
一般这种情况就会报syntax error at position错误。原因就是我们声明了TestCaseParam对象,但未赋初值,于是就默认被赋予“”,导致生成拼接的sql时报错,解决办法对该值进行校验一下就好
更新一下:
根本错误是我少了?正确应该是
tx = tx.Where("case_id =? ", caseParamEntity.CaseId)
通过加了debug就能看到生成的语法错误的sql
SELECT * FROM test_case_params
WHERE test_case_params
.deleted_at
IS NULL AND ((case_id=))1