mysql中变量怎么赋值 mysql 变量定义和赋值

mysql 进:在存储过程中用select 如何给变量赋值

用select...into语句

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名注册网站空间、营销软件、网站建设、宁海网站维护、网站推广。

下面是mysql 5.0的帮助文档的:

这个SELECT语法把选定的列直接存储到变量。因此,只有单一的行可以被取回。

SELECT id,data INTO x,y FROM test.t1 LIMIT 1;

注意,用户变量名在MySQL 5.1中是对大小写不敏感的。请参阅9.3节,“用户变量”。

重要: SQL变量名不能和列名一样。如果SELECT ... INTO这样的SQL语句包含一个对列的参考,并包含一个与列相同名字的局部变量,MySQL当前把参考解释为一个变量的名字。例如,在下面的语句中,xname 被解释为到xname variable 的参考而不是到xname column的:

CREATE PROCEDURE sp1 (x VARCHAR(5))

BEGIN

DECLARE xname VARCHAR(5) DEFAULT 'bob';

DECLARE newname VARCHAR(5);

DECLARE xid INT;

SELECT xname,id INTO newname,xid

FROM table1 WHERE xname = xname;

SELECT newname;

END;

当这个程序被调用的时候,无论table.xname列的值是什么,变量newname将返回值‘bob’。

mysql环境中,如何用sql语句给字符串变量赋值?

mysql给字符串变量赋值的方法是用select into 变量结构完成赋值。

使用sql的结构语法:

SELECT ... INTO var_list selects column values and stores them into variables.

比如定义一个sql变量:

@x varchar(10);

@y varchar(20);

select id,name INTO @x,@y from dx_tt

这样就完成了赋值。

mysql 存储过程怎么赋值?

DELIMITER $$

USE `test`$$

DROP PROCEDURE IF EXISTS `p_getAllTablesCount`$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `p_getAllTablesCount`()

BEGIN

DECLARE tableName VARCHAR (100);

DECLARE tablesn VARCHAR (100);

DECLARE tableCount INT;

DECLARE stopFlag INT;

DECLARE sqlStr VARCHAR(1000);

-- 注意:请修改数据库名称

DECLARE cursor_name CURSOR  FOR SELECT TABLE_NAME  FROM information_schema.tables WHERE table_schema='test';

DECLARE CONTINUE HANDLER FOR SQLSTATE '02000'  SET stopFlag=1;

CREATE TABLE IF NOT EXISTS temp_table(table_name VARCHAR(100),table_count VARCHAR(100));   

OPEN cursor_name;

REPEAT

FETCH cursor_name INTO tableName;

SET sqlStr = CONCAT('SELECT COUNT(1) into @tableCount FROM ', tableName);

SELECT sqlStr INTO @sqlStr;

-- select  @sqlStr;

SELECT @tableCount INTO tableCount;

BEGIN

PREPARE stepInsertIntoTable FROM @sqlStr;

EXECUTE stepInsertIntoTable;

END;

SET sqlStr = CONCAT('insert into  temp_table values(''',CONCAT(tableName),''',''',CONCAT(tableCount),''');');

SELECT sqlStr INTO @sqlStr;

BEGIN

PREPARE stepInsertIntoTable FROM @sqlStr;

EXECUTE stepInsertIntoTable;

END;

UNTIL stopFlag  END REPEAT;

CLOSE cursor_name;   

SELECT table_name,table_count FROM temp_table ORDER BY table_count DESC;

-- PREPARE step FROM @sql1;

-- EXECUTE step;

DROP TABLE  temp_table;

END$$

DELIMITER ;


分享标题:mysql中变量怎么赋值 mysql 变量定义和赋值
地址分享:http://pwwzsj.com/article/ddosoge.html