>백엔드 개발 >Golang >gorm에서 'IN'을 사용하는 where 절에 대한 이중 괄호

gorm에서 'IN'을 사용하는 where 절에 대한 이중 괄호

WBOY
WBOY앞으로
2024-02-10 08:12:08939검색

在 gorm 处使用“IN”的 where 子句的双括号

PHP 편집자 Xinyi는 gorm의 중요한 기능, 즉 gorm의 "IN" where 절에 이중 괄호를 제공합니다. 이 기능을 사용하면 특정 필드에 여러 값이 있는지 보다 편리하게 쿼리할 수 있고, 쿼리문 작성이 단순화되며, 코드의 가독성과 유지 관리성이 향상됩니다. 이중 대괄호를 사용하면 쿼리할 값이 포함된 where 절에 슬라이스를 전달할 수 있으며, gorm은 자동으로 이를 "IN" 절로 변환하여 쿼리 작업을 수행합니다. 이 기능은 실제 개발에서 매우 실용적이며 복잡한 데이터 쿼리 요구 사항을 보다 효율적으로 처리하는 데 도움이 됩니다.

질문 내용

gorm

을 통해 데이터베이스의 값을 업데이트하기 위해 where 절을 사용하고 있습니다.

db.Session(&gorm.Session{FullSaveAssociations: true}).Where("id IN (?)", ids).Updates(users)

ID는 ID의 일부이고 사용자는 구조입니다

문제는 이 오류가 발생한다는 것입니다

错误1241(21000):操作数应包含1列

gorm이 생성한 SQL은 이렇습니다. 이중 괄호가 생성되어 이 오류가 발생하는 것 같습니다. 하지만 이 문제를 해결하는 방법을 모르겠습니다

으아악

편집 1

(?)에서 ()를 제거했는데도 같은 효과가 나타났습니다

db.Session(&gorm.Session{FullSaveAssociations: true}).Where("id IN ?", ids).Updates(users)

으아악

错误1241(21000):操作数应包含1列

해결 방법

여기서 https://github.com/go-gorm/gorm/issues/5014https://gorm.io/docs/sql_builder에서 답을 찾았습니다. html#절

이 절을 사용하면 다음과 같은 일을 할 수 있습니다

으아악

위 내용은 gorm에서 'IN'을 사용하는 where 절에 대한 이중 괄호의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제