我想製作存儲過程,但我不知道應該採用哪種方法,或者甚至可以在MySQL中做到這一點。我應該爲這個查詢使用MySQL過程嗎?
讓我介紹你與我的問題。比方說,我有了這樣的列的表:
TABLE A
id | Hotel | city_name | region_name | country
1 | A | Amsterdam | North-Holland | Netherlands
2 | B | Amsterdam | North-Holland | Netherlands
3 | C | Leiden | North-Holland | Netherlands
4 | D | Katwijk | North-Holland | Netherlands
5 | E | Leiden | North-Holland | Netherlands
6 | F | Katwijk | North-Holland | Netherlands
我想我每次執行這個查詢和結果需要在這個以創建只得到3個結果:
- 如果有3個或更多的城市(用戶選擇在這種情況下,我們可以採取阿姆斯特丹),其
city_name=Amsterdam
然後在阿姆斯特丹返回隨機3個城市 - 如果有少於3條在阿姆斯特丹返回任何有阿姆斯特丹+返回隨機記錄,其中記錄的
region=North-Holland
但重新記錄的總量原來應始終是3(例如:我們有2條記錄,其中city= Amsterdam
+我們取一個隨機記錄從region=North Holand;
例2:我們有一個記錄,其中city=Amsterdam
+我們取2條隨機記錄,其中region="north Holland"
)
這是可能的這與SQL或者我應該得到所有的記錄在PHP中,然後遍歷每個記錄?
我可能需要通過2個參數中的步驟(CITY_NAME,區域)。
到目前爲止,我已經嘗試了一些基本的SQL查詢和我無法得到它的工作。
啊,這也行得通,但是你需要在第二個SELECT中排除city_name'Amsterdam',否則你可能會從第一個SELECT中選擇相同的記錄 – starshine531 2013-03-20 11:47:43
WHERE region ='North Holand'AND city_name < >'阿姆斯特丹' – Jocelyn 2013-03-20 11:51:37
@Jocelyn謝謝大家! – 2013-03-20 11:52:38