2016-08-23 71 views
0

我有db表中的名稱爲table_food的表格,列表爲:first namelast namedate,food name。我想要一個從指定日期返回所有食物名稱的查詢。從指定日期中選擇所有記錄

例如我的表中的記錄是這樣的:

John Watson 2016-08-22 steak 
John Watson 2016-08-22 burger 
John Watson 2016-08-23 fries 
John Watson 2016-08-23 apple 

,我想從2016年8月23日獲得的所有食品名稱。我應該如何創建我的查詢?

+1

提示:'WHERE date ='2016-08-23''。 –

+0

從table_food中選擇食物WHERE date ='' – pbalazek

+0

謝謝,要嘗試 –

回答

1

它取決於您使用的數據庫。 我還加了一個獨特的,因爲我想你只需要不同的食物名稱值。

對於MySQL

select distinct(food_name) from table_food 
where date = '2016-08-23' 

對於Oracle

select distinct(food_name) from table_food 
where date = to_date('2016-08-23', 'YYYY-MM-DD') 

檢查其他數據庫的方言。

注意,如果存儲在日期列中的數據也具有時,分,秒你需要一個不同的查詢在Oracle中提取數據,例如:

select distinct(food_name) from table_food 
where trunc(date) = to_date('2016-08-23', 'YYYY-MM-DD') 
0
$date = "2016-08-23"; 
SELECT * FROM `table_food` WHERE `date` = '{$date}'; 

我之所以會可變的日期完全取決於您想要更改日期的情況。不要誤解你以上的任何一點。我個人的偏好是調整變量而不是查詢。

0

當您需要從表格中檢索數據時,您必須指定在一個或多個條件下從哪個表格中選擇需要的字段。我們將使用以下語法: 我們在不需要冗餘的情況下添加了distinct這個詞。

Select distinct FoodName 
from Table_Food 
Where date = '2016-08-23' 
+1

儘管這段代碼可能有助於解決問題,但它並沒有解釋_why_和/或_how_它是如何回答問題的。提供這種附加背景將顯着提高其長期教育價值。請[編輯]您的答案以添加解釋,包括適用的限制和假設。 –

1

我只是假設你正在使用MySQL數據庫。其他數據庫的答案可能會有所不同。

有兩個版本,取決於你試圖得到什麼。

如果你只是希望所有的食物,包括重複的列表,你可以使用:

select food_name from table_food where date = '2016-08-23' 

如果你只需要得到不同的值(每一種食物名稱一次),你可以使用:

select distinct(food_name) from table_food where date = '2016-08-23' 

第一個問題可能是:已經送達了哪些食物以及其中有多少? 第二個問題可能是:根本沒有提供餐點(不管多頻繁)