sql 语句报错 res := common.DB.Raw("SELECT * FROM(SELECT * FROM flaws WHERE facility_id = ? AND label LIKE '%?%' "+ "UNION SELECT * FROM issues WHERE facility_id = ? AND label = ? "+ "UNION SELECT * FROM records WHERE facility_id = ? AND label = ? "+ "UNION SELECT * FROM qualities WHERE facility_id = ? AND label = ? "+ "UNION SELECT * FROM inspections WHERE facility_id = ? AND label = ?)"+ "AS combined_tables LIMIT ? OFFSET ?", code, label, code, label, code, label, code, label, code, label, pageSize, offset).Find(&req)
时间: 2024-01-17 22:05:51 浏览: 94
这个 SQL 语句中有一些问题。首先,在查询中使用 `%?%` 这种方式是不正确的,正确的应该是使用 `?` 并在参数中加上 `%`。其次,在 SQL 语句中应该使用占位符 `?` 来代替参数,而不是直接写在字符串中。你可以尝试修改这个 SQL 语句如下:
```
res := common.DB.Raw("SELECT * FROM(SELECT * FROM flaws WHERE facility_id = ? AND label LIKE ? "+
"UNION SELECT * FROM issues WHERE facility_id = ? AND label = ? "+
"UNION SELECT * FROM records WHERE facility_id = ? AND label = ? "+
"UNION SELECT * FROM qualities WHERE facility_id = ? AND label = ? "+
"UNION SELECT * FROM inspections WHERE facility_id = ? AND label = ?) "+
"AS combined_tables LIMIT ? OFFSET ?", code, "%"+label+"%", code, label, code, label, code, label, code, label, pageSize, offset).Find(&req)
```
这样修改后,就可以正确地使用参数了。
阅读全文
相关推荐










