簡體   English   中英

PHP +動態SQL查詢

[英]PHP + Dynamic Sql Queries

通過SELECT * FROM teams;對以下數據進行鏡像SELECT * FROM teams;

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;類的東西SELECT *, AVERAGE(Columns) as OverAll FROM teams order by OverAll ASCE; 其中Columns是一組列。

問題是:如何提供列列表? 使用html復選框? 如果是這樣,我如何獲得可用列的列表(查詢是什么)?

有更好的方法嗎?

我希望解決方案與SQLite兼容,但是,我可以根據需要更改數據庫。

編輯:

其中一條評論說,您平均指的是什么?

我的意思是(1 / n)SUM(ai):從i = i:{選擇的列}到n =大小|選擇的列|

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

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

使用以下查詢,您可以獲取表列。

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

請嘗試此操作,我尚未針對您的情況進行測試,但是可以在ORDER BY子句中使用AVERAGE函數,

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM