2017-03-16 21 views
0

這是我的表:選擇值,否則存在負載默認

table

我想,如果已經存在,否則任何違約記錄獲取默認的特定區域5條記錄,如果2條記錄現有然後3任何隨機需要獲取。如果有4個,那麼1個是隨機的。例如,如果我試圖取mumbai,那麼前2個是'孟買',另外3個是從表中提取的任意隨機記錄。假設我想'''華盛頓',那麼沒有記錄,所以所有5條記錄都需要隨機取回。

那麼我該如何做到這一點?

我希望你明白我想說什麼。如果沒有,那麼你可以問我。

謝謝。

+1

你應該提供一些你至少試過的代碼..我們不是來做你無法做到的。我們在這裏幫助您解決您做錯了什麼。 – maximedubois

+0

SQL查詢'SELECT * FROM your_database.your_table WHERE area ='mubia';'是您需要啓動的地方。將它從數據庫中作爲一個數組傳遞,然後讓PHP來完成這項工作。查看CodeIgniter如何選擇數據庫記錄 - 例如:https://www.codeigniter.com/user_guide/database/examples.html –

+0

感謝回覆我們。 maximedubois我試過這個使用多個查詢一個是特定區域,第二個是任何隨機數據。如果數字小於5,則算第一個數,然後再追加第二個數。但是這太冗長了,我想在單個查詢中做到這一點,但我找不到任何完美的查詢來做到這一點,所以我與你分享我的問題。但是,謝謝你給寶貴的時間。 :) – Nitesh

回答

0

您可以使用訂單和限制。類似這樣的:

select * 
from your_table 
order by case when area = 'mumbai' then 1 else 2 end 
limit 5; 

上面的例子表達式將保持給定的區域位於頂部,其他位置在此之後。限制5條款將選擇有序行的前5個。