1. mysql 如何給變數賦一個動態sql執行的結果
DECLAREdt_idvarchar(32);
SET@sqls=CONCAT('SELECTid
FROM
w_volume_detail
WHERE
v_id="',dd_id,'"ANDuidISNULLLIMIT0,1');
executeimmediate@sqlsintodt_id;
2. 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
這樣就完成了賦值。
3. MYSQL存儲過程中聲明變數那句報錯了。求高手解答啊
稍微給你改了下,,,可以了
CREATEPROCEDUREBatchInsert(INinitINT,INloop_timeINT)
BEGIN
DECLAREVarINT;
DECLAREIDINT;
SETVar=0;
SETID=init;
WHILEVar<loop_timeDO
insertintoemployees(id,fname,lname,birth,hired,separated,job_code,store_id)
values(ID,CONCAT('chen',ID),CONCAT('haixiang',ID),Now(),Now(),Now(),1,ID);
SETID=ID+1;
SETVar=Var+1;
ENDWHILE;
END;
你的語句沒錯誤,但是估計是你行間有空格,導致語句錯誤,排了下版就可以了
4. mysql 怎麼定義變數
一、局部變數
局部變數一般用在sql語句塊中,比如存儲過程的begin/end。其作用域僅限於該語句塊,在該語句塊執行完畢後,局部變數就消失了。
局部變數一般用declare來聲明,可以使用default來說明默認值。
二、用戶變數
用戶變數的作用域要比局部變數要廣。用戶變數可以作用於當前整個連接,但是當當前連接斷開後,其所定義的用戶變數都會消失。
用戶變數使用如下(這里我們無須使用declare關鍵字進行定義,可以直接這樣使用):
select @變數名
對用戶變數賦值有兩種方式,一種是直接用"="號,另一種是用":="號。其區別在於使用set命令對用戶變數進行賦值時,兩種方式都可以使用;當使用select語句對用戶變數進行賦值時,只能使用":="方式,因為在select語句中,"="號被看作是比較操作符。
5. mysql 定義變數
在PHP、C++等語言裡面可以使用變數,在存儲過程裡面可以使用變數,SQL語句裡面不能使用變數的。
不過你的要求可以用下面的一個SQL語句實現:
insert into YYY表(欄位1,欄位2,欄位3) SELECT 欄位1,表達式2,常量3 FROM XXX表
注意:上面是兩個表,一般不允許同時對一個表進行操作,如果是一個表,你可以考慮使用臨時表:
SELECT 欄位1,表達式2,常量3 FROM XXX表 INTO TEMP TMP表;
insert into YYY表(欄位1,欄位2,欄位3) SELECT * FROM TMP表;
6. .net中執行mssql 和 mysql查詢語句(語句中包含變數)的區別 —— 變數的聲明及賦值查詢
cmd.CommandText =concat( "declare @Id nvarchar(10);set @Id = (select [Id] from [AF_ApproveFlowTemplet] WHERE [Id] = 9);select [Id] from [AF_ApproveFlowTemplet] WHERE [Id]=@Id;");
或者
System::String ^ commandText = System::String::Concat( "declare @Id nvarchar(10);set @Id = (select [Id] from [AF_ApproveFlowTemplet] WHERE [Id] = 9);select [Id] from [AF_ApproveFlowTemplet] WHERE [Id]=@Id;");
你的sql語句累贅,可以說是沒有任何意義
7. mysql 存儲過程中變數的定義與賦值操作
一、變數的定義
mysql中變數定義用declare來定義一局部變數,該變數的使用范圍只能在begin...end
塊中使用,變數必須定義在復合語句的開頭,並且是在其它語句之前,也可以同時申明多個變數,如果需要,可以使用default賦默認值。
定義一個變數語法如下:
declare
var_name[,...]
type[default
value]看一個變數定義實例
declare
last
date;二、mysql存儲過程變數賦值
變數的賦值可直接賦值與查詢賦值來操作,直接賦值可以用set來操作,可以是常量或表達式如果下
復制代碼
代碼如下:
set
var_name=
[,var_name
expr]...給上面的last變數賦值方法如下
set
last
=
date_sub(
current_date(),interval
1
month);下面看通過查詢給變數賦值,要求查詢返回的結果必須為一行,具體操作如下
select
col
into
var_name[,...]
table_expr我們來通過查詢給v_pay賦值。
create
function
get
_cost(p_custid
int,p_eff
datetime)
return
decimal(5,2)
deterministic
reads
sql
data
begin
declare
v_pay
decimail(5,2);
select
ifnull(
sum(pay.amount),0)
into
vpay
from
payment
where
pay.payd<=p_eff
and
pay.custid=pid
reutrn
v_rent
+
v_over
-
v_pay;
end
$$
好了,這篇簡單的存儲過程中變數的定義賦值教程就到這里了,下面我們會接著講關於myql存儲過程的條件的定義與處理。
以下是其它網友的補充
在MySQL的存儲過程中,可以使用變數,它用於保存處理過程中的值。
定義變數使用DECLARE語句,語法格式如下:
DECLARE
var_name[,...]
type
[DEFAULT
value]
其中,var_name為變數名稱,type為MySQL支持的任何數據類型,可選項[DEFAULT
value]為變數指定默認值。一次可以定義多個同類型的變數,各變數名稱之間以逗號「,」隔開。
定義與使用變數時需要注意以下幾點:
◆
DECLARE語句必須用在DEGIN…END語句塊中,並且必須出現在DEGIN…END語句塊的最前面,即出現在其他語句之前。
◆
DECLARE定義的變數的作用范圍僅限於DECLARE語句所在的DEGIN…END塊內及嵌套在該塊內的其他DEGIN…END塊。
◆
存儲過程中的變數名不區分大小寫。
定義後的變數採用SET語句進行賦值,語法格式如下:
SET
var_name
=
expr
[,var_name
=
expr]
...
其中,var_name為變數名,expr為值或者返回值的表達式,可以使任何MySQL支持的返回值的表達式。一次可以為多個變數賦值,多個「變數名=值」對之間以逗號「,」隔開。
例如:
復制代碼
代碼如下:
begin
declare
no
varchar(20);
declare
title
varchar(30);
set
no='101010',title='存儲過程中定義變數與賦值';
end
提示:存儲過程中所有的關鍵字也是不區分大小寫的,如BEGIN可以寫出begin。
8. MySQL的sql語句聲明兩個變數出錯
這個應該是存儲過程或者是函數吧。
如果是這兩個東西的話,最少有個create
procere
或者function
n_name
as
的申明吧。
還有就是我記得最少有個函數體,即begin
end
如果上面就是你的全部代碼,那是絕對要報錯的撒。
9. Mysql sql語句可以定義變數嗎
用php,或者其它程序,寫一個函數,把需要更新的表名,放到數組里,批量執行一下,就能實現了。
function batchupdate($itemname){
update $itemname set prince=....
}