当数据库中具有以下数据类型时,如何检索数据?

时间:2019-06-11 06:01:45

标签: sql mysql-workbench

我正在学习MySQL(入门)。我正在尝试解决一个困扰我的问题。 Database

当用户输入各种水果,固定物品和饮料时,我试图从上述数据库ORDER_TABLE中提取ORDER_ID。我们将提供相应项目的名称(Apple,Book,Tea)。我们需要检查数据库是否包含用户提供的项目,如果存在,我们需要返回数据库的ORDER_ID,如果没有消息说“尚无此订单”。

如何检查和提取它?我们需要在这里使用循环吗?如果是,让我们假设,有很多物品提供给我们。但是如何在这里使用循环呢?我很困惑。初学者教程不教授此类问题及其解决方案。

或者,我们可以将这些数据分解成几个表,然后获得ORDER_ID吗?

1 个答案:

答案 0 :(得分:1)

一种简单的方法使用聚合。例如,要查找所有具有(Apple, Book, Tea)的订单,我们可以尝试:

SELECT Order_ID
FROM yourTable
GROUP BY Order_ID
HAVING
    COUNT(CASE WHEN Fruits = 'Apple' THEN 1 END) > 0 AND
    COUNT(CASE WHEN Stationary = 'Book' THEN 1 END) > 0 AND
    COUNT(CASE WHEN Drinks = 'Teat' THEN 1 END) > 0;