mysql中子查询有多个结果返回怎么处理

mysql中子查询有多个结果返回怎么处理,第1张

select

SUBSTRING_INDEX(temp.结果一,',',1) as 第一列数据,

SUBSTRING_INDEX(SUBSTRING_INDEX(temp.结果一,','2),',',-1) as 第二列数据,

SUBSTRING_INDEX(temp.结果一,','-1) as 第三列数据,

temp.结果二 as 第四列数据

FROM(

select(select concat_ws(',',数据一, 数据二,数据三) from xx where 条件一) as 结果一,

select(select xx from xx where 条件二) as 结果二

)temp

存储过程经常需要返回多个结果集。 Mysql 中直接用 select 即可返回结果集。而 oracle 则需要使用游标来返回结 果 集。这一点 Mysql 相对比较方便,如下代码即可实现输出两个结果集:

CREATE PROCEDURE test_proc_multi_select()

BEGIN

select * from testproc

select * from testproc where id=1

END

java 中利用循环,即可获取结果集数据:

con = MConnection.getConn()

String sql = "{call test_proc_multi_select()}"

cs = con.prepareCall(sql)

boolean hadResults = cs.execute()

int i = 0

while (hadResults) {

System.out.println("result No:----" + (++i))

ResultSet rs = cs.getResultSet()

while (rs != null &&rs.next()) {

int id1 = rs.getInt(1)

String name1 = rs.getString(2)

System.out.println(id1 + ":" + name1)

}

hadResults = cs.getMoreResults()// 检查是否存在更多结果集

}

$conn= mysqli_connect($DbIP,$DbUserName,$DbPwd,$DbName)//数据库地址,用户名,密码,数据库名

$name = '123'

$sql = "SELECT name FROM order WHERE  name ='".$name."'"

$res = mysqli_query($conn,$sql)//也可以直接用 $res = mysqli_query($sql)

$arr = array()

if($res && is_object($res)){

    while($row=mysql_fetch_assoc($res)){

        $arr[] = $row

    }

}

print_r($arr)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5900369.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-07
下一篇 2023-03-07

发表评论

登录后才能评论

评论列表(0条)

保存