id|pnumber|special|limitedtime|normal
1 |765234 |1 |0 |0
2 |765235 |0 |1 |0
3 |776234 |0 |0 |1
4 |776235 |1 |0 |0
5 |785456 |0 |1 |0
6 |785457 |1 |0 |0
이전에 게시 한 문제의 또 다른 시나리오가 있습니다.MySQL - PERL - 여러 열을 기준으로 정렬 한 다음 열로 정렬합니다. 부품 번호 필드
사실 저는 질문과 대답을 위해 dbi와 placeholder를 사용하고 있습니다.
대신 세 가지 질의 :
SELECT `pnumber` from `table`
WHERE `special` > 1
ORDER BY ABS(pnumber) DESC
LIMIT $Lvar1,$Lvar2
가 실행하고
SELECT `pnumber` from `table`
WHERE `limitedtime` > 1
ORDER BY ABS(pnumber) DESC
LIMIT $Lvar1,$Lvar2
실행 표시 및 표시
SELECT `pnumber` from `table`
WHERE `normal` > 1
ORDER BY ABS(pnumber) DESC
LIMIT $Lvar1,$Lvar2
실행 표시 내 결과를 제공하지만
, LIMIT는 3 가지/종속 변수 모두에 묶여 있어야합니다. 나는 제대로하는 경우에, 나에게 내가 원하는 순서대로 내 결과를 얻을 생각
SELECT `pnumber` from `table`
ORDER BY special?? ABS(pnumber) DESC,
ORDER BY limitedtime?? ABS(pnumber) DESC,
ORDER BY normal?? ABS(pnumber) DESC
LIMIT $Lvar1,$Lvar2
:
그래서, 내가 좋아하는 일을하고 싶습니다.
765234 (special)
776235 (special)
785457 (special)
765235 (limitedtime)
785456 (limitedtime)
776234 (normal)
페이지 매기기/탐색에 LIMIT $ Lvar1, $ Lvar2를 사용합니다.
는 (다른 테이블 코드 아래로 나중에 진행에 질의/일부 상호 참조가 있기 때문에 테이블은 더 많은 데이터 결과는 실제로 배열로 추진되고있다.)물론 큰 질문하는 사람이 월 대답은 간단한 여기에 나중에 가자!
모두에게 도움을 주셔서 감사합니다.
나는 지금 시도하고 다시 연락 할 것입니다. 기대하고있어. 나는 UNION ALL에 대해 약간의 독서를 할 것입니다. 저를 가리켜 주셔서 감사합니다. 이것이 나를 위해 효과가 있다면 당신의 대답을 선택할 것입니다. – Stephie
@Dodger는 중요한 문제를 지적하고 where 절은 1보다> 0을 가져야합니다. –