mysql 오류: SQLSTATE[21000]: 카디널리티 위반: 1242 하위 쿼리가 1개 이상의 행을 반환합니다.
이 오류는 하위 쿼리 결과가 2개 이상의 행을 반환한다는 의미입니다.
이 SQL 문을 예로 들어보세요.
select * from table1 where table1.colums=(select columns from table2);
1) 반복적으로 작성하는 경우 중복된 데이터를 삭제하세요. 데이터를 쓸 때 논리적 판단(PHP)이나 외래키(MySQL)를 활용하면 데이터의 반복 쓰기를 방지할 수 있다.
(실제 개발에서 접한 것은 데이터 쓰기가 반복되는 상황이었습니다. 데이터베이스에서 동일한 데이터 2개를 발견했는데 원래 비즈니스 요구 사항을 충족하지 못했습니다.)
2) 하위 쿼리 조건문에 제한 1을 추가합니다. 조건에 맞는 것을 찾으세요
select * from table1 where table1.colums=(select columns from table2 limit 1);
3) 하위 쿼리 앞에 any 키워드를 추가하세요
select * from table1 where table1.colums=any(select columns from table2);
1개의 쿼리 실행, 0 성공, 1 오류, 0 경고
쿼리: SELECT t.id, DATE_FORMAT( t.statisTime, '%Y-%m-%d %H:%i:%s' ) statisTime, (t_truck_info WHERE id = t.plateId에서 SELECT `id` ...
오류 코드: 1242Subquery가 1개 이상의 행을 반환합니다.
실행 시간: 0.009초 전송 시간: 0.002초 총 시간: 0.012초
쿼리 SQL 문을 작성할 때 필드 중 하나를 가져옵니다. 다른 테이블에서
select t.id,(select num from t_user_info where id = stuNo) as amount from t_stu_info t left join t_user_info t0 on t0.id = t.stuNo
쿼리는 num이 여러 데이터 조각임을 보여 주지만 외부 쿼리 결과에서는 num이 하나의 데이터 조각이어야 합니다
select t.id,(select sum(num) from t_user_info where id = stuNo) as amount from t_stu_info t left join t_user_info t0 on t0.id = t.stuNo
위 내용은 mysql 오류를 해결하는 방법 하위 쿼리가 2개 이상의 행을 반환합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!