Php 用逗号分隔合并的SQL行
我在将从SQL查询中检索到的值转换为正确格式时遇到了一些问题 我已经设法将多行连接到一个值中,但是我不知道如何用逗号分隔每个值。本质上,我需要检索产品的所有ID,例如,如果数据库的值为“5,6,9,1”、“1,3,4”和“2,1”,我希望它在每个ID之间加一个逗号,比如->“5,6,9,1,1,3,4,2,1”,而不是做一些更像->“5,6911,3,42,1”的事情,这就是它目前正在做的事情 下面是我正在使用的代码。任何帮助都将不胜感激 谢谢Php 用逗号分隔合并的SQL行,php,sql,merge,rows,comma,Php,Sql,Merge,Rows,Comma,我在将从SQL查询中检索到的值转换为正确格式时遇到了一些问题 我已经设法将多行连接到一个值中,但是我不知道如何用逗号分隔每个值。本质上,我需要检索产品的所有ID,例如,如果数据库的值为“5,6,9,1”、“1,3,4”和“2,1”,我希望它在每个ID之间加一个逗号,比如->“5,6,9,1,1,3,4,2,1”,而不是做一些更像->“5,6911,3,42,1”的事情,这就是它目前正在做的事情 下面是我正在使用的代码。任何帮助都将不胜感激 谢谢 $hist = "SELECT ORDITEMS
$hist = "SELECT ORDITEMS FROM cust_orderc WHERE ORDDATE >
to_date('".$olddate."','dd/mm/yyyy')";
$histitem = OCIParse($db, $hist);
OCIExecute($histitem);
while($row = oci_fetch_array($histitem)){
$pastitem .= $row['ORDITEMS'];
}
echo "$pastitem";
您可以在
oracle
中使用listag
$hist = "SELECT LISTAGG(ORDITEMS) as ORDITEMS FROM cust_orderc WHERE ORDDATE > to_date('".$olddate."','dd/mm/yyyy')";
编辑或PHP方式
$pastitem = '';
while($row = oci_fetch_array($histitem)){
$pastitem .= $row['ORDITEMS'] . ',';
}
$pastitem = trim($pastitem, ",");
echo $pastitem;
对于oracle数据库,等效函数是
wm_concat()
@MarkBaker谢谢,我从来没有注意到这个查询与oracle数据库相关。:)wm_concat()从未(IIRC)正式记录或支持;我相信Oracle11g也有同样的listag()
功能purpose@MarkBaker包括两种方式。:)啊,我不知道你在那里加了。。非常感谢你!!这真是妙极了:D如果可以的话,我会投票,现在还没有15个名声>。