我們先來創(chuàng)建一種表Authors:
專注于為中小企業(yè)提供成都網(wǎng)站建設、成都做網(wǎng)站服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)景縣免費做網(wǎng)站提供優(yōu)質(zhì)的服務。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了超過千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。
CREATE
TABLE
Authors(
AuthID
SMALLINT
NOT
NULL
PRIMARY
KEY,
AuthFN
VARCHAR(20),
AuthMN
VARCHAR(20),
AuthLN
VARCHAR(20)
)
ENGINE=INNODB;
然后向表中一次性插入多條數(shù)據(jù),sql插入代碼如下:
INSERT
INTO
Authors
VALUES
(1006,
'H',
'S.',
'T'),
(1007,
'J',
'C',
'O'),
(1008,
'B',
NULL,
'E'),
(1009,
'R',
'M',
'R'),
(1010,
'J',
'K',
'T'),
(1011,
'J',
'G.',
'N'),
(1012,
'A',
NULL,
'P'),
(1013,
'A',
NULL,
'W'),
(1014,
'N',
NULL,
'A');
其實與一條一條插入的SQL語句非常類似,只是多條插入語句使用逗號將每條數(shù)據(jù)分開。
結(jié)果如下:
AuthID
AuthFN
AuthMN
AuthLN
1006
H
S.
T
1007
J
C
O
1008
B
E
1009
R
M
R
1010
J
K
T
1011
J
G.
N
1012
A
P
1013
A
W
1014
N
A
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
您好.
以前有高人寫過類似的:
select id,group_concat(re_id order by re_id separator ",") as re_id
from tablename
group by id
方法2:
select group_concat(list_name) from aa_list
如果還有問題,可以繼續(xù)追問,感謝。
我以前做過一個mysql的項目,需要設計一個快速上載的機制。最后的解決辦法是利用了mysql的預處理語句的特性實現(xiàn)的。mysql的預處理語句支持多行數(shù)據(jù)的預處理,即 insert into (columnName,columnName,...) values(?,?,...)(?,?,..)...。這樣你在綁定輸入?yún)?shù)的時候可以在程序里將整張表的數(shù)據(jù)都綁定好然后調(diào)用一次執(zhí)行就能將整張表的數(shù)據(jù)插入,比用mysql_query一行一行插入省的幾倍的時間。不過你一次發(fā)到mysql服務器端的數(shù)據(jù)多的情況下,要設置my.ini文件下的一個配置項,把服務器允許一次發(fā)送的數(shù)據(jù)包的大小調(diào)大就行。
這個需要分情況。
1,你的數(shù)據(jù)庫表中有主鍵,且主鍵上面的數(shù)據(jù)為唯一值。也就是沒有重復值。
那么你在刪除的時候,將這個唯一值作為條件進行刪除。
如:
delete
from
[表名]
where
id=1
2.所有的數(shù)據(jù)相同,那么你只能打開數(shù)據(jù)表,手工選定其中某一條,進行刪除。
我們先來創(chuàng)建一種表Authors:
CREATE
TABLE
Authors(
AuthID
SMALLINT
NOT
NULL
PRIMARY
KEY,
AuthFN
VARCHAR(20),
AuthMN
VARCHAR(20),
AuthLN
VARCHAR(20)
)
ENGINE=INNODB;
然后向表中一次性插入多條數(shù)據(jù),sql插入代碼如下:
INSERT
INTO
Authors
VALUES
(1006,
'H',
'S.',
'T'),
(1007,
'J',
'C',
'O'),
(1008,
'B',
NULL,
'E'),
(1009,
'R',
'M',
'R'),
(1010,
'J',
'K',
'T'),
(1011,
'J',
'G.',
'N'),
(1012,
'A',
NULL,
'P'),
(1013,
'A',
NULL,
'W'),
(1014,
'N',
NULL,
'A');
其實與一條一條插入的SQL語句非常類似,只是多條插入語句使用逗號將每條數(shù)據(jù)分開。
結(jié)果如下:
AuthID
AuthFN
AuthMN
AuthLN
1006
H
S.
T
1007
J
C
O
1008
B
E
1009
R
M
R
1010
J
K
T
1011
J
G.
N
1012
A
P
1013
A
W
1014
N
A
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
/// summary
/// 提供數(shù)據(jù)批量處理的方法。
/// /summary
public interface IBatcherProvider : IProviderService
{
/// summary
/// 將 see cref="DataTable"/ 的數(shù)據(jù)批量插入到數(shù)據(jù)庫中。
/// /summary
/// param name="dataTable"要批量插入的 see cref="DataTable"/。/param
/// param name="batchSize"每批次寫入的數(shù)據(jù)量。/param
void Insert(DataTable dataTable, int batchSize = 10000);
}
一、SqlServer數(shù)據(jù)批量插入
SqlServer的批量插入很簡單,使用SqlBulkCopy就可以,以下是該類的實現(xiàn):
/// summary
/// 為 System.Data.SqlClient 提供的用于批量操作的方法。
/// /summary
public sealed class MsSqlBatcher : IBatcherProvider
{
/// summary
/// 獲取或設置提供者服務的上下文。
/// /summary
public ServiceContext ServiceContext { get; set; }
/// summary
/// 將 see cref="DataTable"/ 的數(shù)據(jù)批量插入到數(shù)據(jù)庫中。
/// /summary
/// param name="dataTable"要批量插入的 see cref="DataTable"/。/param
/// param name="batchSize"每批次寫入的數(shù)據(jù)量。/param
public void Insert(DataTable dataTable, int batchSize = 10000)
{
Checker.ArgumentNull(dataTable, "dataTable");
if (dataTable.Rows.Count == 0)
{
return;
}
using (var connection = (SqlConnection)ServiceContext.Database.CreateConnection())
{
try
{
connection.TryOpen();
//給表名加上前后導符
var tableName = DbUtility.FormatByQuote(ServiceContext.Database.Provider.GetServiceISyntaxProvider(), dataTable.TableName);
using (var bulk = new SqlBulkCopy(connection, SqlBulkCopyOptions.KeepIdentity, null)
分享名稱:mysql怎么將多條數(shù)據(jù) mysql修改多條數(shù)據(jù)
本文路徑:http://aaarwkj.com/article34/hhshse.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、網(wǎng)站營銷、網(wǎng)站改版、網(wǎng)站收錄、移動網(wǎng)站建設、做網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)