请看一下代码片段
while ($rslt = fetch_array($result))
{
//$row++;
if (bccomp ($row, $row_limit, 0) != 1)
{
/*HEADER*/
if ($row == 0)
{
foreach ($_SESSION['market']['data'] as $title => $field)
{
//Output Header Cell
//$title++;
$worksheet->write ($row, $col, title,$formatHeader);
//Advance Column
$col++;
}
}
//Reset Column Position
$col = 0;
//Advance Row
$row++;
}
/*BODY*/
foreach ($_SESSION['market']['data'] as $title => $field)
{
//Output Body Cell
$worksheet->write ($row, $col, $rslt[$field], $formatNormal);
//Advance Column
$col++;
}
//Reset Column Position
$col = 0;
//Advance Row
$row++;
}
}
它的工作完全正常,我对此很满意。但现在的要求是:在每行的第 0 列中有一个名称,并且相对于该名称还有其他字段,现在我想做的是比较每行的第0列,问题是如何存储前一行的第0列。逻辑如下($rslt['name']===$rslt[//前列名称])。 请帮我解决一下。
最佳答案
您不能使用state
别名。您必须重复您的 IFNULL()
表达式:
... CONCAT(a, aa, IFNULL((SELECT p.name FROM p WHERE p.id = x.name), 'N.A.'))
<小时/>
此外,我相信您的意思是 CONCAT()
而不是 CONCATE()
。另请注意,N.A.
应括在单引号中:'N.A.'
。
测试用例:
SELECT CONCAT('1-', '2-', IFNULL((SELECT NULL), 'N.A.'));
+---------------------------------------------------+
| CONCAT('1-', '2-', IFNULL((SELECT NULL), 'N.A.')) |
+---------------------------------------------------+
| 1-2-N.A. |
+---------------------------------------------------+
1 row in set (0.00 sec)
SELECT CONCAT('1-', '2-', IFNULL((SELECT 3), 'N.A.'));
+------------------------------------------------+
| CONCAT('1-', '2-', IFNULL((SELECT 3), 'N.A.')) |
+------------------------------------------------+
| 1-2-3 |
+------------------------------------------------+
1 row in set (0.00 sec)
关于php - 如何比较当前结果集与前一个结果集的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4014936/