基于条件的PHP设置变量
如果这篇文章的标题与我下面的问题无关,我很抱歉。我不知道怎么给它 示例我有以下数据表:基于条件的PHP设置变量,php,oracle,Php,Oracle,如果这篇文章的标题与我下面的问题无关,我很抱歉。我不知道怎么给它 示例我有以下数据表: DEPARTMENT_ID_FK | EMAIL_ADDRESS 001 | a@example.com 002 | b@example.com 001 | c@example.com 当我查询时,是否可以这样设置: 如果是相同的部门ID\u FK,则根据部门ID\u FK将其显示为变量合并值 while($dData = oci
DEPARTMENT_ID_FK | EMAIL_ADDRESS
001 | a@example.com
002 | b@example.com
001 | c@example.com
当我查询时,是否可以这样设置:如果是相同的部门ID\u FK,则根据部门ID\u FK将其显示为变量合并值
while($dData = oci_fetch_array($q))
{
$email = $dData['EMAIL_ADDRESS']; // I know when I echoing this variable, it will be like : a@example.comb@example.comc@example.com
}
我想要的是循环,我们可以知道:
DEPARTMENT_ID_FK | EMAIL_ADDRESS
001 | a@example.com, c@example.com
002 | b@example.com
任何帮助都将不胜感激。您可以让Oracle为您进行聚合 甲骨文11
选择部门ID\u FK,
Listag(电子邮件地址,,)
组内(通过电子邮件地址订购)作为电子邮件地址
来自表1
按部门分组\u ID\u FK
甲骨文10
选择部门ID\u FK,
RTRIM(XMLAGG(xmlement(e,电子邮件地址,,)
按电子邮件地址排序)。提取(“//text()”).GETCLOBVAL(),“,”)作为电子邮件地址
来自表1
按部门分组\u ID\u FK
下面是两个查询的演示
结果:
DEPARTMENT_ID_FK | EMAIL_ADDRESS
-----------------+----------------------------
001 | a@example.com,c@example.com
002 | b@example.com
-----------------+----------------------------
结果:
Array
(
[0] => Array
(
[DEPARTMENT_ID_FK] => 001
[EMAIL_ADDRESS] => a@example.com,c@example.com
)
[1] => Array
(
[DEPARTMENT_ID_FK] => 002
[EMAIL_ADDRESS] => a@example.com
)
)
大堆
(
[0]=>阵列
(
[部门ID\U FK]=>001
[电子邮件地址]=>a@example.com,c@example.com
)
[1] =>阵列
(
[部门ID\U FK]=>002
[电子邮件地址]=>a@example.com
)
)
实现目标的简单方法
$email=array();
而($dData=oci\u fetch\u数组($q)){
$email[$dData['DEPARTMENT\u ID\u FK']=(isset($email[$dData['DEPARTMENT\u ID\u FK'])和&$email[$dData['DEPARTMENT\u ID\u FK']]!=”,:”)$dData['email\u ADDRESS';
}
foreach($key=>$val的电子邮件){
回显$key.'=>'.$val;
}
嗨,彼得,谢谢你的回答,但我得到了如下错误:ORA-00923:FROM关键字未在预期位置找到。我在用Toada你到底在用什么版本的Oracle?您是否更改了表名?我使用的是Oracle 10.0.2.5,是的,我已更改了表名listag
自11gR2起可用。您可以在Oracle 10中使用XMLAGG
。查看更新的答案。我试图运行查询,但出现以下错误:ORA-24813:无法发送或接收不受支持的LOB。请帮助彼得