【问题标题】:MYSQL extra row with repeating number带有重复编号的MYSQL额外行
【发布时间】:2015-02-12 13:25:21
【问题描述】:

它很简单,但我无法让它工作,

我有一个名为“TABLE1”的表,其中有很多行,每行都有唯一的 COLUMN1

COLUMN1
  1
  2
  3
  4
  5

我根据其他条件从中选择行

我想要的输出是一个额外的列,数字“1”和“2”重复

所以输出应该是这样的

COLUMN1   ID
  1       1
  2       2
  4       1
  8       2
 11       1

等等……

这可能吗?

谢谢。

【问题讨论】:

  • 是什么阻止你在 PHP 中这样做?
  • 如何确定 1 和 2?
  • 我有一个很长的 javascript 检查和每行的 php 块。所有输出都在一列中。我想把它分成两列,所以我想,如果我可以添加 1 或 2,我可以在 PHP 中进行检查以回显 td 或 tr。我可以添加 row_number 然后在 php 中除以 2 并基于此进行回显,但我认为在 MYSQL 中这样做会更简单。
  • @JA 1 和 2 只是顺序的.. 输出的第一行,放 1.. 输出的第二行,放 2,输出的第三行,放 1.. 等等..

标签: php mysql calculated-columns


【解决方案1】:

是的,这是可能的。

一种方法是使用 MySQL 用户定义的变量,并有条件地在 1 和 2 之间切换值。

例如:

SELECT t.column1
     , IF(@i=1,@i:=2,@i:=1) AS id
  FROM mytable t
 CROSS JOIN (SELECT @i:=0) i
 ORDER BY t.column1

【讨论】:

  • 太棒了.. 非常感谢。
  • 重要的是要注意 MySQL 参考手册警告说,我们在语句中观察到的用户定义变量的这种行为是保证的。 (它适用于 MySQL 5.1 和 5.5。我还没有在 5.6 中完全测试过;这种行为可能会在未来的版本中改变。)
猜你喜欢
  • 2019-12-08
  • 1970-01-01
  • 2015-06-26
  • 1970-01-01
  • 1970-01-01
  • 2013-08-12
  • 1970-01-01
  • 2012-08-01
  • 2019-06-28
相关资源
最近更新 更多