 悬赏园豆:20
                [已解决问题] 
            
                    解决于 2013-06-20 19:50
                悬赏园豆:20
                [已解决问题] 
            
                    解决于 2013-06-20 19:50 
                 
        创建一个对顾客表customer的姓名列(nam)进行模糊检索的存储过程,将取得的顾客件数通过输出参数p_cnt返回。命名为sp_search_customer。参数省略时,取得表customer的所有数据。
表customer的成员域名
| 域 名 | 数 据 类 型 | 说 明 | 
| mid | CHAR(5) | 用户ID(主键) | 
| nam | VARCHAR(20) | 用户名 | 
| birth | DATE | 生日 | 
| sex | CHAR(1) | 性别(0:男,1:女。默认为0) | 
不明白你的输出需求。
我的大概理解是下面这样。
DELIMITER //
DROP PROCEDURE IF EXISTS sp_search_customer//
CREATE PROCEDURE sp_search_customer (IN p_name VARCHAR(20),OUT p_cnt INT)
BEGIN
IF (p_name IS NULL) THEN
 SELECT * FROM customer;
 END IF;
 IF (p_name IS NOT NULL) THEN
 SELECT COUNT(*) INTO p_cnt FROM customer WHERE INSTR(nam,p_name) > 0;
 END IF;
 
END //
谢谢,您的回答是我比较满意的
我认为楼上的做法是对的。
还有,
创建一个存储过程
1. 输入模糊查询的名字,返回得到的客户个数
2. 不输入名字,返回这个客户表的数据,
我认为,这返回了两个不容类型的数据,应该很实现。要是写两个存储过程,分别返回楼主所说的两个类型数据,再在楼主的真正业务逻辑里面,根据不同情况分别调用会好一点呢?
谢谢你的建议