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

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

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 这样就完成了赋值。

$sql="select * from list order by id asc "

$rs = mysql_query($sql)

while ($row = mysql_fetch_array($rs))

{

$data[] = $row//需要保存到2维数组中才可以调用的

}

echo "这是第一条记录。ID=".$data[0][0].",title=".$data[0][2]

运行这个看看 有不明白的请看我给的参考资料 和PHP手册

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 


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8473466.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-16
下一篇 2023-04-16

发表评论

登录后才能评论

评论列表(0条)

保存