에서 값을 비교하기 위해 필요한이 내 테이블 :내 MySQL 쿼리 확장. 다른 행과 열
나는 그것에서 코드와 번호를 선택하려면이 내 쿼리의 시각화 :
그리고 쿼리입니다 :
SELECT Code,Number,(1894 - Limit1) AS spread1,(Limit2 - 1894) AS spread2
FROM MyTable WHERE Name="John" AND 600>=L1 AND 600<=L2
AND 1894>=Limit1 AND 1894<=Limit2
파이 이 질의는 두 개의 값을 반환하며 하나만 필요합니다. 그래서 ROW2에서 spread1와 ROW1에서 spread2을 비교하고 코드와 더 큰 확산의 번호를 가지고이 경우에는 spread2
야한다.
이유는 그들의 자아를 중복되기 때문에 내가 ROW2에서 ROW1에서 spread2 및 spread1입니다 비교입니다. 그래서, 그 중복 내에서 스프레드를 비교 해요 :
을 내 쿼리 내가, 그 결과로 하나 또는 두 개의 행을 결코 더 얻을 수 있습니다 위에서. 왜? 그 식으로 테이블이 만들어지기 때문입니다. 하나의 행이 결과로 나타나면 어떤 비교도 필요하지 않을 것입니다. 즉, 단일 코드와 숫자가 있다는 것을 의미합니다.
결론적으로 위에서 언급 한 작업을 수행하려면 쿼리를 확장해야합니다. 나는 무엇을 시도했다
추가하는 것입니다
ORDER BY (spread2,spread1) DESC LIMIT 1
와 나는 같은 행에서 알엇 오히려 원하는대로 값을 비교하지 않는다는 것을 확신합니다.
왜 스프레드 2를 스프레드 1과 비교하고 있습니까? 결과에 3 개의 행이 있다면 어떻게 될까요? 또한, '코드와 더 큰 스프레드를 취하십시오'는 3006> 1144를 기록하므로 3006을 반환해야합니다. 맞습니까? –
귀하의 사진은 나에게 이해가되지 않습니다. 그것에 대해 설명해 주시겠습니까? –
왜 '1144'와 '3006'이 고려되지 않습니까? –