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

用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’。

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/8726940.html

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

发表评论

登录后才能评论

评论列表(0条)

保存