mysql 循环查询_mysql循环查询(mysql循环语句)

mysql循环查询(mysql循环语句)

2020-07-24 11:48:10

共10个回答

MYSQL确实不够稳定不够快,我做的系统刚换成SQLserver了!!至于你说的那个循环操作当然是没什么问题了,前提是你的数据是不是海量数据(就是记录很多),如果不是那就安心使用啦!!!只要你写的代码没有逻辑错误呵呵,另外我说的数据过多会不稳定是指数据库所有表整个记录在50万条以上,单表最多记录5万条,游标嵌套超过3层的情况,这个谁也没规定,这是我几个项目总结出来的实战经验而已,仅供参考!!!查看原帖>>

5303b519774438f7b7b22ed753745e7c.png

mysql_fetch_array只是查出一条结果集,没有while循环的话只会显示一条.

c55bde7289754379e1298617169e8bff.png

delimiter$$mysql>mysql>CREATEPROCEDUREmyProc()//创建while循环的存储过程if分支语句示例->BEGIN->->DECLAREiint;->SETi=1;->loop1:WHILEi<=10DO->IFMOD(i,2)<>0THEN/*Evennumber-tryagain*/->SELECTCONCAT(i,"isanoddnumber");->ENDIF;->SETi=i+1;->ENDWHILEloop1;->END$$QueryOK,0rowsaffected(0.00sec)这种也可以

dd79f5e2eaf7159ac0e4f4c65b6a26a5.png

$total=0;//预设变量,用于存放累加结果$sql="查询语句";$sql=mysql_query($sql);while($as=mysql_fetch_array($sql)){$total=$total+$as[0];}还有一种办法更好,假如你要累加的字段名为price,则:$sql="selectsum(price)astotalfrom表名where条件";$sql=mysql_query($sql);$as=mysql_fetch_array($sql);$as['total']..//这里就是你想要的累加结果,直接让mysql做了,php里你就省去循环取值,估计效率好些.

8ad5bcad7bf107322957c3824b0cea12.png

楼上的不是很好,查了5次数据库foreach($uidas$rs){$uid_all.=isset($uid_all)?','.$rs:$rs;}$sql="selectuid,usernamefromtablewhereuidin(uid_all)";是把uid全部连接起来,然后用IN查询,一次把结果都查出来,这样减少数据库连接次数

40bf3006633a738d77d96af44f9f22ce.png

查询时直接取最大值就可以了.SELECTMAX(userid)FROM[表名][WHERE]

ff61f2a6894f041e9ddb8af48de1f7ad.png

1、使用mysql_list_tables()获取该数据库里所有表名2、循环使用mysql_fetch_field()获取所有表名里的所有字段名信息(因为该函数查询出的是每个字段的所有信息比如字段名、字段长度、字段类型等.你要单独取出字段名称他的使用方法网上有很详细介绍的)3、然后在循环中查询出一个字段名称就与你已知的字段名比较如果一样了那么就在该循环出字段的表里了..这2个函数具体使用方法你百度查询一下资料很丰富的全写出来太费劲了只能告诉你思路了.

254ef1fbc10940246524781e1be3d722.png

declare@fintintset@fint=1declare@fsumintset@fsum=4while@fint追问:谢谢.不过我是想知道,当循环查询(selectcount(*)from表where字段=@i)的结

ac55c6024e1db2537642f328e0f3d203.png

用存储过程就行了,给你一个能传参数的实例吧dropprocedureifexistsemployee;delimiter$createprocedureemployee(INaccint(20))BEGINDECLAREiINT(11);SETi=0;loop1:WHILEi评论000

5983a6d7a994ce28deb7ac6ff7342afc.png

楼上的不要误导新手,mysql_fetch_object获取的是对象,你用$value['Name']数组方式怎么能取的出来?完整的代码如下:$sql="selectNamefrom表名;";$result=mysql_query($sql,$conn);while($row=mysql_fetch_array($result)){echo$row['Name'];}$conn为数据库连接.

b5eba273ff44d1a179424309e59e8840.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值