【问题标题】:In a select add fake rows when a columns have a specifc value当列具有特定值时,在选择中添加假行
【发布时间】:2016-08-27 08:10:39
【问题描述】:

我的查询是:

SELECT email,price
FROM invoice
WHERE email='123@xxx.com'

每当“价格”字段等于“99.00”时,我想添加一个假行,每个结果白色值“价格”“21.00”

例子

正常结果

Email         Price
123@xxx.com   84,00
123@xxx.com   99,00
123@xxx.com   29,00
123@xxx.com   99,00

我想要这样的结果:

Email         Price
123@xxx.com   84,00
123@xxx.com   99,00
123@xxx.com   21,00
123@xxx.com   29,00
123@xxx.com   99,00
123@xxx.com   21,00

【问题讨论】:

  • 您想将假行添加到表中还是仅添加到 SELECT 中?
  • 你的主键是什么?
  • 仅用于选择而不是插入
  • 主键是电子邮件

标签: mysql if-statement select rows


【解决方案1】:

使用下面的查询来获得预期的(按顺序修改)结果 如果您使用此查询,您将不会按顺序获得结果

Email         Price
123@xxx.com   84,00
123@xxx.com   99,00
123@xxx.com   21,00
123@xxx.com   29,00
123@xxx.com   99,00
123@xxx.com   21,00

但是你会得到下面的顺序

Email         Price
123@xxx.com   84,00
123@xxx.com   99,00
123@xxx.com   29,00
123@xxx.com   99,00
123@xxx.com   21,00
123@xxx.com   21,00

要使用的查询是

SELECT email,price
FROM invoice
WHERE email='123@xxx.com'
UNION ALL
SELECT email,21,00
FROM invoice
WHERE email='123@xxx.com'
AND Price=99,00

【讨论】: