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

Mysql存储过程查询结果赋值到变量的方法

把查询结果赋值到变量,大部分情况下使用游标来完成,但是如果明确知道查询结果只有一行(例如统计记录的数量,某个字段求和等),其实可以使用set或into的方式来实现赋值。示例代码:

drop table if exists test_tbl

create table test_tbl (name varchar(20), status int(2))

insert into test_tbl values('abc', 1),('edf', 2),('xyz', 3)

drop procedure IF EXISTS pro_test_3

delimiter //

create procedure pro_test_3()

begin

DECLARE cnt INT DEFAULT 0

select count(*) into cnt from test_tbl

select cnt

-- 多个列的情况下似乎只能用 into 方式

select max(status), avg(status) into @max, @avg from test_tbl

select @max, @avg

end

delimiter

call pro_test_3()

sprintf(query, "SELECT *FROM history WHERE serialnumber='%s' AND adtcode='%s' LIMIT 1", dataStr,modulename)

if (!mysql_real_query(mysql, query, (unsigned long)strlen(query))) {

res = mysql_use_result(mysql)

numfields = mysql_field_count(mysql)

while (row=mysql_fetch_row(res)) {

fprintf(outfile, "\r\n")

lengths = mysql_fetch_lengths(res)

fields=mysql_fetch_fields(res)

for (i=0i<numfieldsi++) {

fprintf(outfile, "%.*s ", (int)lengths[i], row[i])

}

}


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存