CREATE DEFINER=`root`@`%` PROCEDURE testProc()
BEGIN
SELECT 'Hello 1' AS A, 'World 1' AS B UNION ALL
SELECT 'Hello 2' AS A, 'World 2' AS B
END //
DELIMITER
mysql>call testProc()
+---------+---------+
| A | B |
+---------+---------+
| Hello 1 | World 1 |
| Hello 2 | World 2 |
+---------+---------+
2 rows in set (0.00 sec)
Query OK, 0 rows affected (0.01 sec)
上面这种效果, 是你要的效果么?
追问
不是这样。
我要的是直接获取数据表中的内容 比如有一个表 :
| id | name|
| 1 | name 1 |
| 2 | name 2 |
| n | name n |
| 100 | name 100 |
我要获取ID小于100的
可以,存储过程只是把你的查询语句形成一个固定的格式,这样你要查询的时候就不用每次都执行查询语句了,sql在执行的时候都会将你的sql语句转换为字节码,然后机器才能运行,存储过程就节省了这一步,已经形成了字节码,所以速度才会快,特别是执行次数比较多的时候,可以节省很多时间mysql 关于数据库查询后返回的结果集少使用一个函数:
$sql = "select * from aboutus where abid = '1'"
$result = mysql_query($sql)
echo mysql_error()//如果数据库语句有错,这里会输出
echo "<pre>"
while($re = mysql_fetch_array($result))
{
print_r($re)
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)