이 아마 두 개의 컬럼으로 테이블을 정렬하는 방법을 찾고 사람을 도움이되지만, 병렬 방식으로. 즉, 집계 정렬 기능을 사용하여 두 가지 유형을 결합해야합니다. 예를 들어 전문 검색을 사용하여 기사를 검색 할 때와 기사 게시 날짜와 관련하여 매우 유용합니다.
이것은 예제 일 뿐이지 만 아이디어를 잡으면 많은 집계 함수를 사용할 수 있습니다. 열을 추가하여 1 초 이상을 선호 할 수도 있습니다. 내 기능은 두 가지 모두에서 극단을 취하므로 가장 가치있는 행이 맨 위에 있습니다.
죄송합니다.이 작업을 수행하는 간단한 해결책이 있지만 아직 찾지 못했습니다.
SELECT
`id`,
`text`,
`date`
FROM
(
SELECT
k.`id`,
k.`text`,
k.`date`,
k.`match_order_id`,
@row := @row + 1 as `date_order_id`
FROM
(
SELECT
t.`id`,
t.`text`,
t.`date`,
@row := @row + 1 as `match_order_id`
FROM
(
SELECT
`art_id` AS `id`,
`text` AS `text`,
`date` AS `date`,
MATCH (`text`) AGAINST (:string) AS `match`
FROM int_art_fulltext
WHERE MATCH (`text`) AGAINST (:string IN BOOLEAN MODE)
LIMIT 0,101
) t,
(
SELECT @row := 0
) r
ORDER BY `match` DESC
) k,
(
SELECT @row := 0
) l
ORDER BY k.`date` DESC
) s
ORDER BY (1/`match_order_id`+1/`date_order_id`) DESC
이상한. 두 개의 열이있을 때 이름과 합계가 이름과 DESC 순으로 알파벳순으로 정렬하려면 총칭이 아닌 이름순으로 정렬되어야합니다. – Eugene
그럴 수 있다는 것을 알지 못했습니다! Exxelent! :) – teecee
숫자 필드에 아무 이유없이 (-1) * field1, field2 ... 해킹했습니다. ... 감사합니다. –