mysql中要獲得存儲過程的返回值,可以增加一個out參數,用來返回。
mysql中存儲過程的例子:
CREATE PROCEDURE addvoucher (
IN userid INT,
IN voucherid INT,
OUTresult INT
)
BEGIN
SELECT
@endate_a := endate ,@batch_a := batch ,@c_count_a := c_count,
@isdead_a := isdead
FROM
t_voucher
WHERE
id = voucherid;
SET autocommit = 0;
IF EXISTS (
SELECT
*
FROM
t_user_voucher tuv,
t_voucher tv
WHERE
tv.id = tuv.voucherid
AND tv.batch =@batch_a
) THEN
SET result = 1;-- 已存在
SELECT
result;
ELSE
IF @c_count_a > 0 THEN
IF (
TO_DAYS(@endate_a) - TO_DAYS(NOW())
) > 0 THEN
IF @isdead_a = 1 THEN
INSERT INTO t_user_voucher (userid, voucherid, isdead)
VALUES
(userid, voucherid, 1);
UPDATE t_voucher SET c_count = c_count-1 where id = voucherid;
SET result = 0;-- 成功
END;
下面是調用並返回結果:
❷ mysql 存儲過程中怎麼定義數組的格式
存儲過程里定義不了數組。如果是sqlserver,那麼你可以用表變數,游標來實現你的功能。 如果是sqlserver2005以上的版本,可以做clr存儲過程,那裡面是可以用數組的。
❸ mysql可以直接存數數組么
拿PHP代碼來演示:
$info=array("name"=>"zhangsan","sex"=>"男","age"=>18);
$userInfo=json_encode($info);
可以考慮將數組encode成json字元串,然後存入,如下圖
$arr=json_decode($result);
謝謝~
❹ mysql中怎麼存儲數組在線等!急!
把數組轉換成字元串後再存入資料庫
參考函數:
implode() ---把數組轉換成字元串
explode() ---把字元串轉換成數組
手冊里有詳細說明
序列化以後存儲.
對於一維數組可以簡單的用
implode
explode
函數做數組——串的變換,但需注意分隔符要使用數組中不存在的字元
對於多維數組可以用序列化函數處理
serialize
unserialize
函數的用法手冊中都有
❺ mysql的存儲過程怎麼傳入數組參數
沒試過往裡面傳數組,一般都是多傳幾個參數,把幾個參數放入SqlParameter[]中,然後cmd.Parameters.AddRange(pars);
創建方法:
SqlParameter[] paras = new SqlParameter[]
{
new SqlParameter("@PageIndex","ccc"),
new SqlParameter("@PageSize","ccc"),
new SqlParameter("@StrSql","ccc")
};
ccc就是你想傳入的值,帶@的就是你在存儲過程中定義的參數。
算是一種另類的數組吧。要不你就把所有條件組合成一個字元串,中間用特殊符號隔開,到資料庫用split方法再分回來,不過這個方法比較麻煩,不推薦
❻ 在mysql資料庫怎麼存int[ ]數組
按字元串存就可以了!!
int[6] in={1,1,1,1,1,1,1}可以直接存成varchar "1111111";
❼ MYSQL存入數組的獲取問題
你應該在存入時將數組進行序列化,讀出時在進行反序列化
serialize
unserialize
❽ mysql中怎麼存儲數組
SQL沒有數組這種類型,數組是一種數據結構的概念,跟關系型mysql數據存儲持久化沒有關系。
如果要將數組的內容存儲的mysql中,如 arr[n][m]二維數組,你創建一個table arr, 列是 A B,循環數組的每個元素,然後存儲到對應的表中的A B列。
當然怎麼存儲到資料庫中看你自己的需要,可以存到一個欄位中,用分隔符分開,倒是取出來的時候直接字元串split得到數組。
(8)mysql存儲數組擴展閱讀:
系統特性:
1、mySQL使用 C和C++編寫,並使用了多種編譯器進行測試,保證了源代碼的可移植性。
2、支持AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows等多種操作系統。
3、為多種編程語言提供了API。這些編程語言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby,.NET和 Tcl 等。
4、支持多線程,充分利用 CPU 資源。
5、優化的SQL查詢演算法,有效地提高查詢速度。
6、既能夠作為一個單獨的應用程序應用在客戶端伺服器網路環境中,也能夠作為一個庫而嵌入到其他的軟體中。
7、提供多語言支持,常見的編碼如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作數據表名和數據列名。
8、提供TCP/IP、ODBC 和JDBC等多種資料庫連接途徑。
9、提供用於管理、檢查、優化資料庫操作的管理工具。
10、支持大型的資料庫。可以處理擁有上千萬條記錄的大型資料庫。
❾ 如何把byte數組存儲到mysql中
mysql中有2種欄位類型來存儲二進制原始數據。
1、binary和varbinary,適合存儲少量的二進制數據
2、blob適合存儲大量的數據
輸入時可以用INSERT INTO table (name) VALUE( x「0123456789ABCDEF「 )
這樣的16進制串,也可以JDBC的setBlob等方法輸入。