MySQL의 테이블에서 가장 높은 값을 찾는 방법 즉 난 MySQL의 테이블을 가지고
st_id | name | email | maths | chemistry | bio | social_study 1 | john |@a.com | 20 | 23 | 10 | 15
내 질문에 내가 두 번째 마지막 그래서 모든 주제 분야는 지능을 가지고
주에서 가장 높은 과목 점수를 찾을 수있는 방법입니다 (11) 값
MySQL의 테이블에서 가장 높은 값을 찾는 방법 즉 난 MySQL의 테이블을 가지고
st_id | name | email | maths | chemistry | bio | social_study 1 | john |@a.com | 20 | 23 | 10 | 15
:
학생 :
st_id | name | email
1 | john |@a.com
코스 :
cr_id | name
1 | maths
2 | chemistry
3 | bio
4 | social_studies
StudentCourses : 이제
st_id | cr_id | score
1 | 1 | 20
1 | 2 | 23
1 | 3 | 10
1 | 4 | 15
당신은 할 수 있습니다 :
SELECT s.name, MAX(sc.score) FROM Students s INNER JOIN StudentCourses sc ON s.st_id = sc.st_id;
가장 좋은 답을 확인이 될 수 있습니다. 이제 검색어를 변경하지 않고도 코스 목록을 빠르게 수정할 수 있습니다. 또한 'StudentCourses' 테이블에 타임 스탬프 필드를 추가하여 날짜 별 점수를 선택할 수 있습니다. – biakaveron
@aroth가 수행 한 작업을 "정규화"라고합니다. –
SELECT * FROM <table>
ORDER BY <field> DESC
LIMIT <needed number of rows>
예 :
SELECT * FROM <table>
ORDER BY maths+chemistry+bio+social_study DESC
LIMIT 3
엄밀히 말하면 PHP 메소드 : 필드 이름과의 연관성을 유지하려고한다고 가정합니다. 이 경우 행을 배열로 가져온 것으로 가정 할 때 쿼리 결과의 각 행에 asort($row);
을 사용하면됩니다. asort
은 키를 유지하면서 배열을 가장 낮은 값에서 가장 높은 값으로 정렬합니다 (추가 플래그를 사용하여 결과를 조정할 수 있음). foreach
루프를 사용하면 정렬 된 순서로 각 키/값 쌍을 처리 할 수 있습니다.
st_id | name | email | maths | chemistry | bio | social_study
1 | john |@a.com | 20 | 23 | 10 | 15
쿼리 맨 마크
SELECT id,GREATEST(mark,mark1,mark2) AS `top` FROM `students`
안녕하세요 내 대답이 너무 – Harish