MySQL数据表遍历问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL数据表遍历问题相关的知识,希望对你有一定的参考价值。

如果我想在mysql中遍历数据表中的所有字段,用什么方法比较高效?
通过程序或者是Procedure都可以,能高效遍历每条数据的每个字段信息就行,请问是否需要使用策略提升效率?数据量一般,哪种方法比较快?

参考技术A mysql的INFORMATION_SCHEMA中的COLUMNS记录所有字段的信息。
可以直接查询这个表就可以。
例:查询所有字段的名称:
select COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS;
查询某表(a)所有字段的名称:
select COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME='a';
参考技术B 数据量一般就直接遍历,既然都说了是遍历还提什么效率?
只是用php操作的时候,最好逐条,不要一次全取,否则可能造成内存超限本回答被提问者采纳
参考技术C 程序?还是存储过程? 参考技术D 循环

关于mysql中遍历数据库

我想遍历一个主机下所有数据库,以下写法对吗? <?php mysql_connect("localhost","root","") or die('连接数据库错误'); $sql="SHOW DATABASES"; $res=mysql_query($sql); $row=mysql_fetch_array($res); print_r($row); ?>

基本上是对的,我修改了一下,在我的系统下执行成功:

<?php
mysql_connect("localhost","root","") or die(\'连接数据库错误\');
$sql="SHOW DATABASES";
$res=mysql_query($sql);
while ($row=mysql_fetch_array($res)) echo $row[0]."\\n";
mysql_free_result($res);
mysql_close();
?>

执行后显示所有数据库。追问

这里面可不可以使用条件或者模糊查询啊,比如我想列出以aa开头的数据库,比如有一部分库名叫aa_开头的

追答

可以的,这样写查询语句:
show databases like \'aa_%\'

参考技术A <?php
mysql_connect("localhost","root","") or die('连接数据库错误');
$sql="SHOW DATABASES";
$res=mysql_query($sql);
while( $row=mysql_fetch_array($res))
print_r($row);
echo "<br/>";

?>
这么写才对,需要一个while来遍历它

以上是关于MySQL数据表遍历问题的主要内容,如果未能解决你的问题,请参考以下文章

mysql使用游标遍历数据进行批量针对性更新数据,急求mysql大神解答

mysql存储过程之游标遍历数据表

jQuery/Js 循环遍历 Codeigniter MySQL 输出的数据

C++遍历mysql结果集,一万条数据花多长时间?

[MySQL] 实现树形的遍历(关于多级菜单栏以及多级上下部门的查询问题)

mysql全表遍历为啥耗时