解决方案 »
- 配对率查询
- mysql中复制表数据提示报错
- postgresql ado odbc 大小写问题 急!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- 修改代码的问题,高手帮忙一下,谢先!
- Mysql中乱码问题(在线等)
- 请教: MYSQL中的datetime的日期时间存储依据
- Last_Errno: 1062,Last_Error: Error 'Duplicate entry '...' for key 'PRIMARY'' on
- 求个sql语句...
- mysql 1032 can't find record in 'tablename'
- phpMyAdmin登录以后不能操作用户权限
- jsp+mysql数据库还原 出错
- 求一条SQL
不是字段名,是传入参数
我那段代码是//下面是我自己写的一个,这个表中有 uid ,和u_name等字段,但是下面的语句提示第三行错误,把
WHERE uid=1去掉也是一样CREAT PROCEDURE pr_demo(IN u_name CHAR)
BEGIN
SELECT u_name WHERE uid=1;
SET u_name='hcf';
SELECT u_name WHERE uid=1;
END;还有个示例CREAT PROCEDURE sp_name()
BEGIN
SET @a = 5; //这里的@ 是干嘛用的
SET @b = 5;
INSERT INTO t values (@a);
SELECT s1 * @a FROM t WHERE s1 >=@b; //这一句的s1 * @a没明白,s1是什么
END;
CALL pr_demo('AA')SELECT u_name WHERE uid=1;->少了FROMSET @a = 5; //这里的@ 是干嘛用的
SESSION级变量这一句的s1 * @a没明白,s1是什么:
S1字段名,s1 * @a:字段值*变量@A的值
CREATE PROCEDURE pr_demo( IN u_name CHAR ) //这里可以有多个参数吗
BEGIN
SELECT u_name FROM user WHERE uid=1; //找不到这里的错误
SET u_name='hcf';
SELECT u_name FROM user;
END;
CALL pr_demo('u_name');错误提示:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 3
保留字CREATE PROCEDURE pr_demo( IN u_name CHAR ) //这里可以有多个参数吗
可以,你的u_name是什么参数,如果是传入参数字段名,要用动态执行的方法
CREATE PROCEDURE sp_name ([proc_parameter[,...]])
[characteristic ...] routine_body
CREATE FUNCTION sp_name ([func_parameter[,...]])
RETURNS type
[characteristic ...] routine_body
proc_parameter:
[ IN | OUT | INOUT ] param_name type
func_parameter:
param_name type
type:
Any valid MySQL data type
characteristic:
LANGUAGE SQL
| [NOT] DETERMINISTIC
| { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
| SQL SECURITY { DEFINER | INVOKER }
| COMMENT 'string'
routine_body:
Valid SQL procedure statement or statements
多看看参考手册。里面有现成的例子。
我用的Wamp5,支持存储过程吗
BEGIN
SET @asql=CONCAT('select ',u_name1,',',u_name2,' from aa');
SELECT @asql;
PREPARE stml FROM @asql;
EXECUTE stml;
END$$DELIMITER ;