SQL은 A열에 대한 결과를 먼저 표시한 후 B열에 대한 결과를 표시합니다.
SQL에서 열의 결과를 표시/순서 지정name
그 후 첫 번째에 대한 결과를 표시합니다.description
컬럼의 마지막입니다.
현재 SQL 쿼리:
SELECT * FROM products WHERE (name LIKE '%$search_query%' OR description LIKE '%$search_query%')
추가해 보았다order by name, description [ASC|DESC]
안 먹혔어요.
검색 결과를 최적화하기 위한 것입니다.에서 특정 단어가 발견되었을 경우description
또한 특정 단어가 검색될 경우 마지막이 될 수 있습니다.name
기둥.
를 사용할 수 있습니다.CASE
의 성명ORDER BY
이름을 우선시합니다.다음 예에서는 이름이 일치하는 모든 결과가 먼저 표시됩니다.CASE
스테이트먼트는 1로 평가되지만 다른 모든 결과는 2로 평가됩니다.
당신의 문제 설명으로는 정확히 어떤 행동을 원하는지 모르겠지만, 이 기술을 사용하여 결과를 우선시하는 보다 정교한 케이스를 만들 수 있습니다.
SELECT *
FROM products
WHERE (name LIKE '%$search_query%' OR description LIKE '%$search_query%')
ORDER BY CASE WHEN name LIKE '%$search_query%' THEN 1 ELSE 2 END
이름을 먼저 알고 싶다면 가장 간단한 건order by
다음과 같습니다.
order by (name like '%$search_query%') desc
MySQL은 부란을 숫자 컨텍스트의 숫자로 처리합니다. "1"은 true, "0"은 false입니다.
이것은 문서화되어 있지 않지만, 다음과 같이 조합된 결과가UNION ALL
UNION ALL은 결과 세트 하단에 새로운 결과를 추가하기 때문에 나중에 정렬되지 않고 반환된 순서대로 유지됩니다.이것으로 충분합니다.
SELECT * FROM products
WHERE name LIKE '%$search_query%'
UNION ALL
SELECT * FROM products
WHERE (description LIKE '%$search_query%' AND name NOT LIKE '%$search_query%')
언급URL : https://stackoverflow.com/questions/55007043/sql-show-results-for-a-column-first-then-show-results-for-b-column
'programing' 카테고리의 다른 글
클래스와 타입의 차이 (0) | 2022.12.06 |
---|---|
php에서 로그 파일을 만드는 방법 (0) | 2022.12.06 |
MariaDB: dynamic_columns로 데이터 인파일 로드 (0) | 2022.12.06 |
동일한 방법으로 (서로 참조하는)2개의 리스트를 정렬하는 방법 (0) | 2022.12.06 |
특정 어레이 인덱스에 값이 존재하는 경우 JavaScript에서 체크인을 하려면 어떻게 해야 합니까? (0) | 2022.12.06 |