Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何循环mysql过程?_Mysql_Sql_Stored Procedures - Fatal编程技术网

如何循环mysql过程?

如何循环mysql过程?,mysql,sql,stored-procedures,Mysql,Sql,Stored Procedures,我有表a,其中有以下记录: +----+---+---+ | a | b | c | +----+---+---+ | 1 | 1 | 2 | | 2 | 1 | 2 | | 3 | 1 | 2 | | 4 | 1 | 2 | | 5 | 1 | 2 | | 6 | 1 | 2 | | 7 | 1 | 2 | | 8 | 1 | 2 | | 9 | 1 | 2 | | 10 | 1 | 2 | +----+---+---+ 如何添加另一列(d),该列的记录数仅为4,其中的值

我有表a,其中有以下记录:

+----+---+---+
| a  | b | c |
+----+---+---+
|  1 | 1 | 2 |
|  2 | 1 | 2 |
|  3 | 1 | 2 |
|  4 | 1 | 2 |
|  5 | 1 | 2 |
|  6 | 1 | 2 |
|  7 | 1 | 2 |
|  8 | 1 | 2 |
|  9 | 1 | 2 |
| 10 | 1 | 2 |
+----+---+---+
如何添加另一列(
d
),该列的记录数仅为4,其中的值是循环语句的乘积?我正在为这种sql使用mysql存储过程

这些是我想要的输出

+----+---+---+---+
| a  | b | c | d |
+----+---+---+---+
|  1 | 1 | 2 | 1 |
|  2 | 1 | 2 | 2 |
|  3 | 1 | 2 | 3 |
|  4 | 1 | 2 | 4 |
|  5 | 1 | 2 |   |
|  6 | 1 | 2 |   |
|  7 | 1 | 2 |   |
|  8 | 1 | 2 |   |
|  9 | 1 | 2 |   |
| 10 | 1 | 2 |   |
+----+---+---+---+

您只需执行以下操作即可获得结果:

select a, b, c, (case when a <= 4 then a end) as d
from table t;

选择a、b、c(a时的情况),您只需执行以下操作即可获得结果:

select a, b, c, (case when a <= 4 then a end) as d
from table t;

选择a、b、c(a时的情况),您只需执行以下操作即可获得结果:

select a, b, c, (case when a <= 4 then a end) as d
from table t;

选择a、b、c(a时的情况),您只需执行以下操作即可获得结果:

select a, b, c, (case when a <= 4 then a end) as d
from table t;

选择a,b,c,(当a在旁注上时,如果b中的值不是1,这只是一个示例,那么您可以这样做乘法

SELECT a, b, c, IF(@a <= 4, a * b, '') as d, @a := @a + 1
FROM table_a
CROSS JOIN (SELECT @a := 1) t

选择a、b、c,如果(@a在旁注上如果b中的值不是1,这只是一个示例,那么您可以这样做乘法

SELECT a, b, c, IF(@a <= 4, a * b, '') as d, @a := @a + 1
FROM table_a
CROSS JOIN (SELECT @a := 1) t

选择a、b、c,如果(@a在旁注上如果b中的值不是1,这只是一个示例,那么您可以这样做乘法

SELECT a, b, c, IF(@a <= 4, a * b, '') as d, @a := @a + 1
FROM table_a
CROSS JOIN (SELECT @a := 1) t

选择a、b、c,如果(@a在旁注上如果b中的值不是1,这只是一个示例,那么您可以这样做乘法

SELECT a, b, c, IF(@a <= 4, a * b, '') as d, @a := @a + 1
FROM table_a
CROSS JOIN (SELECT @a := 1) t

选择a、b、c、IF(@a为什么要使用“循环”在存储过程中获取指定的结果?我看不到任何合理的理由来实现存储过程来执行此操作。因为我将为此设置一个参数……正如我所说,没有合理的理由。我看不到您指定提供参数的任何地方。为了什么?要返回的列的名称?要返回的行数bered?在SQL语句中指定一个值比在存储过程中传递一个参数值要简单得多。为什么要使用“循环”呢在存储过程中获取指定的结果?我看不到任何合理的理由来实现存储过程来执行此操作。因为我将为此设置一个参数……正如我所说,没有合理的理由。我看不到您指定提供参数的任何地方。为了什么?要返回的列的名称?要返回的行数bered?在SQL语句中指定一个值比在存储过程中传递一个参数值要简单得多。为什么要使用“循环”呢在存储过程中获取指定的结果?我看不到任何合理的理由来实现存储过程来执行此操作。因为我将为此设置一个参数……正如我所说,没有合理的理由。我看不到您指定提供参数的任何地方。为了什么?要返回的列的名称?要返回的行数bered?在SQL语句中指定一个值比在存储过程中传递一个参数值要简单得多。为什么要使用“循环”呢在存储过程中获取指定的结果?我看不到任何合理的理由来实现存储过程来执行此操作。因为我将为此设置一个参数……正如我所说,没有合理的理由。我看不到您指定提供参数的任何地方。为了什么?要返回的列的名称?要返回的行数bered?在SQL语句中指定一个值比向存储过程传递一个参数值的所有繁琐操作都要简单,实际上更容易。