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
樓主你自己看著辦好了。