189 8069 5689

MySQL是怎么赋值的 mysql赋值符号

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 进:在存储过程中用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 存储过程怎么赋值?

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://cdxtjz.cn/article/hiesgc.html

其他资讯