mysql赋值sql
㈠ oracle | mysql | sql server 赋值语句的区别
--Oracle
/*简单赋值*/
declare
a integer := 1;
begin
dbms_output.put_line(a);
end;
/*查询赋值*/
declare
a integer;
begin
select id into a from tab_name where xx=21;
dbms_output.put_line(a);
end;
/*update语句赋值*/
declare
a integer;
begin
update tab_name set a = 2 where id = 21;
dbms_output.put_line(a);
end;
--SQL Server
/*简单赋值*/
declare @a int
set @a=5
print @a
/*使用select语句赋值*/
declare @user1 nvarchar(50)
select @user1='张三'
print @user1
declare @user2 nvarchar(50)
select @user2 = Name from ST_User where ID=1
print @user2
/*使用update语句赋值*/
declare @user3 nvarchar(50)
update ST_User set @user3 = Name where ID=1
print @user3
--MySql
/*mysql中变量不用事前申明,在用的时候直接用“@变量名”使用就可以了。
第一种用法:set @num=1; 或set @num:=1; //这里要使用变量来保存数据,直接使用@num变量
第二种用法:select @num:=1; 或 select @num:=字段名 from 表名 where ……
注意上面两种赋值符号,使用set时可以用“=”或“:=”,但是使用select时必须用“:=赋值”
*/
㈡ mysql 存储过程怎么赋值
DELIMITER$$
USE`test`$$
DROPPROCEDUREIFEXISTS`p_getAllTablesCount`$$
CREATEDEFINER=`root`@`localhost`PROCEDURE`p_getAllTablesCount`()
BEGIN
DECLAREtableNameVARCHAR(100);
DECLAREtablesnVARCHAR(100);
DECLAREtableCountINT;
DECLAREstopFlagINT;
DECLAREsqlStrVARCHAR(1000);
--注意:请修改数据库名称
DECLAREcursor_nameCURSORFORSELECTTABLE_NAMEFROMinformation_schema.tablesWHEREtable_schema='test';
'02000'SETstopFlag=1;
CREATETABLEIFNOTEXISTStemp_table(table_nameVARCHAR(100),table_countVARCHAR(100));
OPENcursor_name;
REPEAT
FETCHcursor_nameINTOtableName;
SETsqlStr=CONCAT('SELECTCOUNT(1)into@tableCountFROM',tableName);
SELECTsqlStrINTO@sqlStr;
--select@sqlStr;
SELECT@tableCountINTOtableCount;
BEGIN
@sqlStr;
EXECUTEstepInsertIntoTable;
END;
SETsqlStr=CONCAT('insertintotemp_tablevalues(''',CONCAT(tableName),''',''',CONCAT(tableCount),''');');
SELECTsqlStrINTO@sqlStr;
BEGIN
@sqlStr;
EXECUTEstepInsertIntoTable;
END;
UNTILstopFlagENDREPEAT;
CLOSEcursor_name;
SELECTtable_name,table_countFROMtemp_tableORDERBYtable_countDESC;
--PREPAREstepFROM@sql1;
--EXECUTEstep;
DROPTABLEtemp_table;
END$$
DELIMITER;
㈢ mysql 中,已知一个字段值,把另一个字段也赋值为已知的这个字段的值,一条sql怎么实现
update 表 set 另一字段=已知字段
㈣ mysql 同一张表,如果A字段为空则赋值同条数据记录B字段的值,sql怎么写
update 表名 set A=(select B from 表名 where 主键字段 =(select top1 主键字段 from 表名 where A=null))where A=null 然后循环一下, 这样只用作处理数据比较小的的表。
㈤ 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 命令 一个表中怎么赋值
$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手册
㈦ mysql 如何给变量赋一个动态sql执行的结果
DECLAREdt_idvarchar(32);
SET@sqls=CONCAT('SELECTid
FROM
w_volume_detail
WHERE
v_id="',dd_id,'"ANDuidISNULLLIMIT0,1');
executeimmediate@sqlsintodt_id;
㈧ MYSQL中取一个表中特定字段值,赋给同一个字段的所有记录。应该如何写SQL语句。
select top 1 id,name,age from 表 order by age desc
按照年龄倒序排序,然后取第一条。
考虑可能有多人年龄相同,如果都需取出,可以这样写:
select id,name,age from 表 where age=(select max(age) from 表)
㈨ 如何把mysql查询结果赋值给多个变量
打开结果集 用游标循环取值,
1
2
3
4
5
6
7
8
9
10
11
12
$sql_str='select * from DEPARTMENTS where SUPDEPTID='.$SUPDEPTID.' order by DEPTID ';
$rs=$conn->Execute($sql_str);
echo "ok";
while(!$rs->eof){
$row_arr=array();
$row_arr['id']=$rs->fields["DEPTID"]->value;
$row_arr['text']=iconv( "gb2312", "UTF-8//IGNORE" , $rs->Fields['DEPTNAME']->value);
$row_arr['DEPTID']=$rs->fields["DEPTID"]->value;
$row_arr['DEPTNAME']=iconv( "gb2312", "UTF-8//IGNORE" , $rs->Fields['DEPTNAME']->value);
$row_arr['SUPDEPTID']=$rs->fields["SUPDEPTID"]->value;
$row_arr['UPDEPTNAME']=$UPDEPTNAME;
}
㈩ mysql自定义方法执行sql赋值给字符串(原oracle语法翻译成mysql)
靠,费了牛劲了,结果最后得到这么一个提示:
ERROR 1336 : Dynamic SQL is not allowed in stored function or trigger
楼主你自己看着办好了。