我在描述這個「問題」時遇到了一些麻煩。請隨意將標題更改爲對此主題更具描述性的內容。允許用戶搜索MySQL數據庫時處理不同SQL搜索查詢的最佳方法
我有一個數據庫,想給用戶有機會選擇如何對結果進行排序,搜索數據庫等
我使用PHP和MySQL。
我做了這個表的設置爲例:
table Persons
+----+------+----------+------------+------+-----+
| id | age | gender | date | hits | car |
+----+-----------------+------------+------+-----+
| 1 | 18 | male | xx.xx.xxxx | 1040 | 1 |
| 2 | 35 | female | xx.xx.xxxx | 443 | 2 |
| 3 | 67 | male | xx.xx.xxxx | 453 | 2 |
| 4 | 10 | male | xx.xx.xxxx | 3454 | 4 | ==> 4 means Citroen
| 5 | 98 | female | xx.xx.xxxx | 323 | 6 |
+----+------+----------+------------+------+-----+
table Cars
+----+----------+
| id | model |
+----+----------+
| 1 | Porche |
| 2 | Ferrari |
| 3 | Volvo |
| 4 | Citroen |
| 5 | VW |
+----+----------+
一種方法從數據庫中選擇數據可能是這樣的:
$sql = "SELECT *, DATE_FORMAT(date, '%b %e, %Y') AS show_date FROM persons ORDER BY date DESC LIMIT 100";
但是,如果我想給用戶帶來什麼有機會根據日期,點擊,評分(另一個表)進行降序和升序排序,也有機會只選擇年齡在X以下的男性(例如男性)。我該怎麼做呢?我是否需要爲所有可能的查詢製作if else
,或者是否可以在一個查詢中查找?
我不需要一個完成代碼片段,我只需要知道是否有任何好的文章或「最佳實踐」 - 要做到這一點。最簡單和最安全的方法是首選。
P.S.你稱這種「問題」爲何?