MySQL按每行数量返回结果

标签 mysql

我需要一个要求我返回如下内容的查询。

data table
--------------------------------
product name | quantity
apple        | 3
egg          | 2

query expected result
--------------------------------
product name
apple
apple
apple
egg
egg

感谢反馈

更新 #1 好吧,我不好,问题不清楚。我想通过按数量循环我的产品来显示我的结果。可能我对数量的预期结果让人有些困惑。因此,是否可以在mysql中按数量循环我的记录?

最佳答案

如果你真的需要在 SQL 中使用它,你可以利用一个 tally(numbers) 表,你可以像这样创建并填充值 1-100

CREATE TABLE tally(n INT NOT NULL AUTO_INCREMENT PRIMARY KEY);
INSERT INTO tally (n)
SELECT a.N + b.N * 10 + 1 n
 FROM 
(SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) a
,(SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) b
ORDER BY n;

那么你的查询看起来会是

SELECT product_name
  FROM data_table d JOIN tally t
    ON t.n <= d.quantity

注意:确保您的tally 表中有MAX(n) 值>= MAX(quantity) 在您的 data_table 中以使其正常工作

输出:

+--------------+
| product_name |
+--------------+
| apple        |
| apple        |
| apple        |
| egg          |
| egg          |
+--------------+

这是 SQLFiddle 演示

关于MySQL按每行数量返回结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22291814/

相关文章:

c# - mysql select 查询中的可选参数

php - 使用 MySQL 和 PHP 计算某个日期期间的占用天数

php - 使用 Wordpress 建立数据库连接时出错

mysql - 如何列出 MySQL 数据库中的所有触发器?

mysql - 如何在同一查询中比较另一个表中的列

mysql 性能问题

mysql - 在 MySQL 中查询并返回所有外键值作为数组

php - 简单的MYSQL数据查询?

php - 打印 mySql 生成的所有查询

mysql - 以原始数据类型从数据库返回值 (Kohana ORM)