mysql不能直接運行動態(tài)sql語句的,但是可以寫在存儲過程中,然后調(diào)用過程執(zhí)行,具體如下:
創(chuàng)新互聯(lián)建站專業(yè)為企業(yè)提供荔灣網(wǎng)站建設(shè)、荔灣做網(wǎng)站、荔灣網(wǎng)站設(shè)計、荔灣網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、荔灣企業(yè)網(wǎng)站模板建站服務(wù),10余年荔灣做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。
(1)定義存儲過程,示例CREATE?DEFINER=`root`@`localhost`?PROCEDURE?`query_extra_table(table_index?varchar(255)?);
BEGIN
SET?@sql?=?concat("select?*?from?tbl_order_",?table_index);
PREPARE?stmt?FROM?@sql;
EXECUTE?stmt;
END
(2)調(diào)用存儲過程:
CALL?query_extra_table('483')
經(jīng)過對你問題的分析,有兩種方式可以解決。
第一種方式:使用mysql的存儲過程,判斷哪一個表的字段內(nèi)容全是數(shù)字,放在前面。
第二種方式:使用java或其他動態(tài)語言,進(jìn)行判斷并組裝。
另一種思路,就是把三個表的數(shù)據(jù)統(tǒng)一一下。
group_contact剛好滿足你的這個要求哦
數(shù)據(jù)庫的結(jié)構(gòu)如下:
no item
01 AA
01 BB
02 CC
02 DD
02 EE
03 FF
04 GG
04 HH
希望將no相同的列整合為一條記錄如下
no items
01 AA,BB
02 CC,DD,EE
03 FF
04 GG,HH
MYSQL中,直接有g(shù)roup_contact函數(shù)了,如下:
select id,group_contact(items) from TABLE group by id
方法/步驟
首先,計算字符串的字符數(shù),可以用char_length()函數(shù),代碼如下:
select
'zhangsan',char_length('zhangsan');
如下圖所示:
字符串中的length()函數(shù),用來計算字符串的長度,代碼如下:
select
'zhangsan',length('zhangsan1111');
如下圖所示:
字符串函數(shù)中有時需要將幾個不同的字符串拼接在一起,這時可以利用concat(a1,a2,...)和concat_ws(b,b1,b2,...),可以將各字符串合并成一個字符串,代碼如下:
select
concat('zhang','san','feng');
select
concat_ws('*','zhang','san','feng');
如下圖所示:
說明 : string1,string2代表字符串,concat函數(shù)在連接字符串的時候,只要其中一個是NULL,那么將返回NULL
結(jié)果:
說明:將多個字符串連接成一個字符串,但是可以一次性指定分隔符~(concat_ws就是concat with separator)
GROUP_CONCAT([DISTINCT] expr [,expr ...] [ORDER BY {unsigned_integer | col_name | expr} [ASC | DESC] [,col_name ...]] [SEPARATOR str_val])
說明:
DISTINCT:去除重復(fù)值
expr [,expr ...]:一個或多個字段(或表達(dá)式)
ORDER BY {unsigned_integer | col_name | expr} [ASC | DESC] [,col_name ...]:根據(jù)字段或表達(dá)式進(jìn)行排序,可多個
SEPARATOR str_val:分隔符(默認(rèn)為英文逗號)
group_concat()函數(shù)在處理大數(shù)據(jù)的時候,會發(fā)現(xiàn)內(nèi)容被截取了
其實MYSQL內(nèi)部對這個是有設(shè)置的,默認(rèn)不設(shè)置的長度是1024,如果我們需要更大,就需要手工去修改配置文件
網(wǎng)站欄目:mysql怎么拼接,mysql拼接sql
本文地址:http://m.rwnh.cn/article22/phghcc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗、定制開發(fā)、靜態(tài)網(wǎng)站、小程序開發(fā)、服務(wù)器托管、
聲明:本網(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)