티스토리 뷰

열이 테이블 / 뷰에 정의되어있는 경우 해당 열을 사용하고 ORDER BY결과에서 생략 할 수 있습니다 . 그러나 귀하의 경우에는에서 계산 된 열 을 사용 ORDER BY하고 있으므로 이러한 열을 생략하려면에서 ORDER BY해당하는 공식 으로 대체해야합니다 . 예 :

ORDER BY
    CASE WHEN (`name` = "John Smith") = 1 THEN (`name` = "John Smith") END DESC
        -- etc...
        

나는 이것이 좋은 해결책이 아니라고 생각합니다. 대신 하위 쿼리를 사용하는 것이 좋습니다.

INSERT INTO relational (class_id, teacher_id, student_id)
SELECT id,1,1 FROM
    (SELECT `id`,
            (`name` = "John Smith") as exact_score,
                    (`name` RLIKE "[[:<:]]John Smith[[:>:]]") as reg_score,
                            (MATCH (`name`) AGAINST ("John Smith")) as match_score
                                FROM `teachers`
                                    WHERE (`title` RLIKE "[[:<:]]John Smith[[:>:]]" || MATCH (`title`) AGAINST ("John Smith"))
                                        ORDER BY
                                                CASE WHEN exact_score = 1 THEN exact_score END DESC,
                                                        CASE WHEN reg_score > 1 THEN reg_score END DESC,
                                                                CASE WHEN reg_score = 0 AND exact_score = 0 THEN match_score END DESC)
                                                                    AS t1;
                                                                    


출처
https://stackoverflow.com/questions/39940030
댓글
공지사항
Total
Today
Yesterday
«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31