반응형
MySQL 문이 열 값을 변경하기 전에 행을 정렬하는 것 같습니다. 값이 변경된 후 정렬해야 합니다.
이 진짜 쿼리
SELECT IF(`AutomobilioMarke`='Vauxhall', 'Opel', `AutomobilioMarke`),
`AutomobilioModelis`, `AutomobilioVariklis`, `kurTip`,
`VarGal`, `GamintojoKodas`, `AutomobilioMetai`, `Kaina`,
`ID`, `Kur`, `VArkliai`, `VariklioTuris`
FROM Detale AS p
JOIN AutomobiliuList AS r ON r.KType = p.KTipas
WHERE (`AutomobilioMarke` != '')
AND (`KatId` = 4840 OR `KatId` = 4844)
AND (`Quantity` != 0)
ORDER BY `AutomobilioMarke` ASC, `AutomobilioModelis` ASC,
`GamintojoKodas` ASC, `AutomobilioMetai` ASC
제가 생각하는 문제는 다음과 같습니다.
SELECT IF(`Make`='Vauxhall', "Opel", `Make`) FROM Cars ORDER BY `Make` ASC
행은 이렇게 주문받습니다.
- 오펠..
- 푸조..
- 르노..
- 로버..
- 오펠..
원하는:
- 오펠..
- 오펠..
- 푸조..
- 르노..
- 로버..
먼저 정리하고 값을 변경하는 것 같은데 값을 변경한 다음에 정리할 방법이 없을까요?
또는 변경 정렬을 정렬하거나 원하는 값을 가져옵니다.
식을 통해 반환되는 열에 별칭을 지정하지 않았습니다.
IF(`AutomobilioMarke`='Vauxhall', 'Opel', `AutomobilioMarke`)
그래서 만약 당신이 생각한다면.ORDER BY이 식의 결과로 정렬할 것입니다. 그러면 당신은 틀립니다. 왜냐하면 그것은 열로 정렬하기 때문입니다.AutomobilioMarke표에 있는 대로
별칭을 정의하고 에일리어스를 사용합니다.ORDER BY조항:
SELECT
IF(`AutomobilioMarke`='Vauxhall', 'Opel', `AutomobilioMarke`) AS AutoMarke,
`AutomobilioModelis`,
`AutomobilioVariklis`,
`kurTip`,
`VarGal`,
`GamintojoKodas`,
`AutomobilioMetai`,
`Kaina`,
`ID`,
`Kur`,
`VArkliai`,
`VariklioTuris`
FROM Detale AS p JOIN AutomobiliuList AS r
ON r.KType = p.KTipas
WHERE(`AutomobilioMarke` != '') AND (`KatId` = 4840 OR `KatId` = 4844) AND (`Quantity` != 0)
ORDER BY AutoMarke ASC, `AutomobilioModelis` ASC, `GamintojoKodas` ASC, `AutomobilioMetai` ASC
언급URL : https://stackoverflow.com/questions/61798768/mysql-seems-to-sort-rows-before-if-statement-changes-values-of-columns-i-need-t
반응형
'programing' 카테고리의 다른 글
| MariaDB에서 JSON data를 통한 읽기/검색(array의 여러 객체: deep search - syntax question) (0) | 2023.10.25 |
|---|---|
| jQuery 바인딩 클릭 *Anything* 그러나 *Element* (0) | 2023.10.20 |
| 카르마가 주니트 플러그인을 로드할 수 없습니다. (0) | 2023.10.20 |
| PHP에서 이중 콜론 연산자와 화살표 연산자의 차이점은? (0) | 2023.10.20 |
| strcat() 전에 strcpy()를 먼저 해야 하는 이유는 무엇입니까? (0) | 2023.10.20 |