MySQL 오류 1241: 오퍼랜드에 1개의 열이 포함되어 있어야 합니다.
table1의 데이터를 table2에 삽입하려고 합니다.
insert into table2(Name,Subject,student_id,result)
select (Name,Subject,student_id,result)
from table1;
table2의 키는 student_id 입니다.
중복되는 것은 없다고 가정합니다.
다음과 같은 에러가 표시됩니다.MySQL error 1241: Operand should contain 1 column(s)
표 2에는 4개의 열만 있습니다.
구문 오류, 제거( )
부터select
.
insert into table2 (name, subject, student_id, result)
select name, subject, student_id, result
from table1;
삭제만 하면 됩니다.(
및 그)
SELECT 스테이트먼트:
insert into table2 (Name, Subject, student_id, result)
select Name, Subject, student_id, result
from table1;
파서가 동일한 예외를 발생시키는 또 다른 방법은 다음과 같은 잘못된 절입니다.
SELECT r.name
FROM roles r
WHERE id IN ( SELECT role_id ,
system_user_id
FROM role_members m
WHERE r.id = m.role_id
AND m.system_user_id = intIdSystemUser
)
네스트된 것SELECT
의 스테이트먼트IN
절은 2개의 컬럼을 반환합니다.이는 id 컬럼이 네스트된 select 문에 의해 반환된 결과에서1개의 컬럼(role_id)과 일치하기 때문에 파서는 오퍼랜드로 간주합니다.이것은 기술적으로 올바른 것입니다.
완전성을 위해 올바른 구문은 다음과 같습니다.
SELECT r.name
FROM roles r
WHERE id IN ( SELECT role_id
FROM role_members m
WHERE r.id = m.role_id
AND m.system_user_id = intIdSystemUser
)
이 쿼리가 구문 분석되었을 뿐만 아니라 예상된 결과를 반환한 저장 프로시저입니다.
언급URL : https://stackoverflow.com/questions/15820288/mysql-error-1241-operand-should-contain-1-columns
'programing' 카테고리의 다른 글
현재 실행 중인 파일의 경로와 이름을 얻으려면 어떻게 해야 합니까? (0) | 2022.09.19 |
---|---|
Eclipse 실행 시 기본 라이브러리를 재정의하지 않고 "java.library.path"에 추가하는 방법 (0) | 2022.09.19 |
왜 닫는 태그를 생략합니까? (0) | 2022.09.19 |
foreach는 php의 배열 순서로 반복할 수 있습니까? (0) | 2022.09.19 |
어떻게 하면 발의 감지를 개선할 수 있을까요? (0) | 2022.09.19 |