2016-08-23 41 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' 

第一个问题可能是:已经送达了哪些食物以及其中有多少? 第二个问题可能是:根本没有提供餐点(不管多频繁)

相关问题