2013-07-26 3 views
1

이미지 나는 다음을 수있는 방법을 알고 싶습니다 SELECT * FROM teams;PHP + 동적 SQL 쿼리

Country Games-W Games-l ScoreAverage RedCards YellowCards 
USA  0.18  0.72  0.67   .01   .08 
Mecixo  0.28  0.62  0.77   .06   .01 
Italy  0.48  0.52  0.87   .07   .00 
Spain  0.78  0.22  0.97   .08   .18 

의 결과로 다음과 같은 데이터.

주어진 열에 대해 동적 정렬을 구현하는 방법을 알고 있습니다. 드롭 다운을 사용하여 정렬 할 열과 이동 한 열을 선택할 수 있습니다.

각 순열에 대한 쿼리를 작성하지 않고도 일련의 열을 정렬하는 좋은 방법을 찾고 싶습니다.

과 같은 것 SELECT *, AVERAGE(Columns) as OverAll FROM teams order by OverAll ASCE; 여기서 Columns는 열 집합입니다.

질문 : 어떻게 열 목록을 제공합니까? html 체크 박스를 사용 하시겠습니까? 그렇다면 어떻게 사용할 수있는 열의 목록을 가져 옵니 까? (쿼리 란 무엇입니까?)

더 나은 접근법이 있습니까?

솔루션이 SQLite와 호환되면 좋겠지 만 필요에 따라 데이터베이스를 변경할 수 있습니다.

편집 : 코멘트

하나는 당신이 평균 무엇을 의미합니까했다?

평균 (1/n) SUM (ai) : i = i : {선택된 열}에서 n = 크기 | 선택된 열 |

Country Games-W Games-l ScoreAverage RedCards YellowCards average 
USA  0.18  0.72  0.67   .01   .08   .32 
+0

당신이 웹에 정렬 된 열을 보여줄 필요가 있습니까? 또는 머리글에서 각 열을 클릭하여 정렬 할 수 있습니다. – Suleman

+0

웹에서 주어진 열을 정렬 할 수 있습니다. 하지만 여러 열의 평균을 기준으로 정렬 할 수있는 능력이 필요합니다. – Cripto

+0

"여러 열 평균"이란 무엇을 의미합니까? 보기를 보여주십시오! –

답변

1

아래의 쿼리를 사용하면 테이블의 열을 얻을 수 있습니다 :

SELECT *, AVERAGE(Game-w, games-l, scoreAverage, redCards, yellowcards) as OverAll FROM teams where Country= 'USA' order by OverAll ASCE;

이 될 것입니다.

SELECT COLUMN_NAME 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_SCHEMA = 'database_name' AND 
     TABLE_NAME = 'table'; 
0

이 시도하십시오, 당신의 경우에 테스트하지 않은,하지만 AVERAGE 기능 ORDER BY 절에 사용할 수

SELECT * FROM teams where Country= 'USA' 
order by AVG(Game-w, games-l, scoreAverage, redCards, yellowcards) ASC; 
+0

그건 작동하지 않습니다. Im in sqlite. – Cripto

+0

@ user1048138 : 마지막으로 ** E **를 삭제했는지 확인하십시오. – Suleman