mysql循环查询(mysql循环语句)
2020-07-24 11:48:10
共10个回答
MYSQL确实不够稳定不够快,我做的系统刚换成SQLserver了!!至于你说的那个循环操作当然是没什么问题了,前提是你的数据是不是海量数据(就是记录很多),如果不是那就安心使用啦!!!只要你写的代码没有逻辑错误呵呵,另外我说的数据过多会不稳定是指数据库所有表整个记录在50万条以上,单表最多记录5万条,游标嵌套超过3层的情况,这个谁也没规定,这是我几个项目总结出来的实战经验而已,仅供参考!!!查看原帖>>
mysql_fetch_array只是查出一条结果集,没有while循环的话只会显示一条.
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)这种也可以
$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里你就省去循环取值,估计效率好些.
楼上的不是很好,查了5次数据库foreach($uidas$rs){$uid_all.=isset($uid_all)?','.$rs:$rs;}$sql="selectuid,usernamefromtablewhereuidin(uid_all)";是把uid全部连接起来,然后用IN查询,一次把结果都查出来,这样减少数据库连接次数
查询时直接取最大值就可以了.SELECTMAX(userid)FROM[表名][WHERE]
1、使用mysql_list_tables()获取该数据库里所有表名2、循环使用mysql_fetch_field()获取所有表名里的所有字段名信息(因为该函数查询出的是每个字段的所有信息比如字段名、字段长度、字段类型等.你要单独取出字段名称他的使用方法网上有很详细介绍的)3、然后在循环中查询出一个字段名称就与你已知的字段名比较如果一样了那么就在该循环出字段的表里了..这2个函数具体使用方法你百度查询一下资料很丰富的全写出来太费劲了只能告诉你思路了.
declare@fintintset@fint=1declare@fsumintset@fsum=4while@fint追问:谢谢.不过我是想知道,当循环查询(selectcount(*)from表where字段=@i)的结
用存储过程就行了,给你一个能传参数的实例吧dropprocedureifexistsemployee;delimiter$createprocedureemployee(INaccint(20))BEGINDECLAREiINT(11);SETi=0;loop1:WHILEi评论000
楼上的不要误导新手,mysql_fetch_object获取的是对象,你用$value['Name']数组方式怎么能取的出来?完整的代码如下:$sql="selectNamefrom表名;";$result=mysql_query($sql,$conn);while($row=mysql_fetch_array($result)){echo$row['Name'];}$conn为数据库连接.