給你個思路吧,也沒帶電腦。在c中,單個大寫字母的char的ascii值小于小寫字母。值遍歷這個字符串,找到大寫字母的index并切割,拆成三個,然后加空格拼接。
成都創新互聯堅持“要么做到,要么別承諾”的工作理念,服務領域包括:做網站、成都網站設計、企業官網、英文網站、手機端網站、網站推廣等服務,滿足客戶于互聯網時代的曲水網站設計、移動媒體設計的需求,幫助企業找到有效的互聯網解決方案。努力成為您成熟可靠的網絡建設合作伙伴!
mysql不能直接運行動態sql語句的,但是可以寫在存儲過程中,然后調用過程執行,具體如下:
(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)調用存儲過程:
CALL?query_extra_table('483')
MySQL中 concat 函數
使用方法:
CONCAT(str1,str2,…)
返回結果為連接參數產生的字符串。如有任何一個參數為NULL ,則返回值為 NULL。
注意:
如果所有參數均為非二進制字符串,則結果為非二進制字符串。
如果自變量中含有任一二進制字符串,則結果為一個二進制字符串。
一個數字參數被轉化為與之相等的二進制字符串格式;若要避免這種情況,可使用顯式類型 cast, 例如:
SELECT CONCAT(CAST(int_col AS CHAR), char_col)
MySQL的concat函數可以連接一個或者多個字符串,如
mysql select concat('10');
+--------------+
| concat('10') |
+--------------+
| 10 |
+--------------+
1 row in set (0.00 sec)
mysql select concat('11','22','33');
+------------------------+
| concat('11','22','33') |
+------------------------+
| 112233 |
+------------------------+
1 row in set (0.00 sec)
MySQL的concat函數在連接字符串的時候,只要其中一個是NULL,那么將返回NULL
mysql select concat('11','22',null);
+------------------------+
| concat('11','22',null) |
+------------------------+
| NULL |
+------------------------+
1 row in set (0.00 sec)
MySQL中 concat_ws 函數
使用方法:
CONCAT_WS(separator,str1,str2,...)
CONCAT_WS() 代表 CONCAT With Separator ,是CONCAT()的特殊形式。第一個參數是其它參數的分隔符。分隔符的位置放在要連接的兩個字符串之間。分隔符可以是一個字符串,也可以是其它參數。
注意:
如果分隔符為 NULL,則結果為 NULL。函數會忽略任何分隔符參數后的 NULL 值。
如連接后以逗號分隔
mysql select concat_ws(',','11','22','33');
+-------------------------------+
| concat_ws(',','11','22','33') |
+-------------------------------+
| 11,22,33 |
+-------------------------------+
1 row in set (0.00 sec)
和MySQL中concat函數不同的是, concat_ws函數在執行的時候,不會因為NULL值而返回NULL
mysql select concat_ws(',','11','22',NULL);
+-------------------------------+
| concat_ws(',','11','22',NULL) |
+-------------------------------+
| 11,22 |
+-------------------------------+
1 row in set (0.00 sec)
MySQL中 group_concat 函數
完整的語法如下:
group_concat([DISTINCT] 要連接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'])
基本查詢
mysql select * from aa;
+------+------+
| id| name |
+------+------+
|1 | 10|
|1 | 20|
|1 | 20|
|2 | 20|
|3 | 200 |
|3 | 500 |
+------+------+
6 rows in set (0.00 sec)
以id分組,把name字段的值打印在一行,逗號分隔(默認)
mysql select id,group_concat(name) from aa group by id;
+------+--------------------+
| id| group_concat(name) |
+------+--------------------+
|1 | 10,20,20|
|2 | 20 |
|3 | 200,500|
+------+--------------------+
3 rows in set (0.00 sec)
以id分組,把name字段的值打印在一行,分號分隔
mysql select id,group_concat(name separator ';') from aa group by id;
+------+----------------------------------+
| id| group_concat(name separator ';') |
+------+----------------------------------+
|1 | 10;20;20 |
|2 | 20|
|3 | 200;500 |
+------+----------------------------------+
3 rows in set (0.00 sec)
以id分組,把去冗余的name字段的值打印在一行,
逗號分隔
mysql select id,group_concat(distinct name) from aa group by id;
+------+-----------------------------+
| id| group_concat(distinct name) |
+------+-----------------------------+
|1 | 10,20|
|2 | 20 |
|3 | 200,500 |
+------+-----------------------------+
3 rows in set (0.00 sec)
以id分組,把name字段的值打印在一行,逗號分隔,以name排倒序
mysql select id,group_concat(name order by name desc) from aa group by id;
+------+---------------------------------------+
| id| group_concat(name order by name desc) |
+------+---------------------------------------+
|1 | 20,20,10 |
|2 | 20|
|3 | 500,200|
+------+---------------------------------------+
3 rows in set (0.00 sec)
repeat()函數
用來復制字符串,如下'ab'表示要復制的字符串,2表示復制的份數
mysql select repeat('ab',2);
+----------------+
| repeat('ab',2) |
+----------------+
| abab |
+----------------+
1 row in set (0.00 sec)
又如
mysql select repeat('a',2);
+---------------+
| repeat('a',2) |
+---------------+
| aa |
+---------------+
1 row in set (0.00 sec)
mysql向表中某字段后追加一段字符串:
update table_name set field=CONCAT(field,'',str)
mysql 向表中某字段前加字符串
update table_name set field=CONCAT('str',field)
說明 : string1,string2代表字符串,concat函數在連接字符串的時候,只要其中一個是NULL,那么將返回NULL
結果:
說明:將多個字符串連接成一個字符串,但是可以一次性指定分隔符~(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:去除重復值
expr [,expr ...]:一個或多個字段(或表達式)
ORDER BY {unsigned_integer | col_name | expr} [ASC | DESC] [,col_name ...]:根據字段或表達式進行排序,可多個
SEPARATOR str_val:分隔符(默認為英文逗號)
group_concat()函數在處理大數據的時候,會發現內容被截取了
其實MYSQL內部對這個是有設置的,默認不設置的長度是1024,如果我們需要更大,就需要手工去修改配置文件
不同的數據庫,相應的字符串拼接方式不同,通過對比加深一下記憶。
一、MySQL字符串拼接
1、CONCAT函數
語法格式:CONCAT(char c1, char c2, ..., char cn) ,其中char代表字符串,定長與不定長均可以
連接兩個字符串
連接多個字符串
2、"+"操作符
連接兩個字符串
連接多個字符串
3、假如其中一個字段為NULL,則用結果用空格代替NULL。
二、Oracle字符串拼接
1、CONCAT函數
語法格式:CONCAT(char c1, char c2) ,其中char代表字符串,定長與不定長均可以
連接兩個字符串
連接多個字符串
使用CONCAT函數的嵌套實現。
2、"||"操作符
連接兩個字符串
連接多個字符串
3、假如其中一個字段為NULL,則用結果用空格代替NULL。
擴展資料
字符串函數(String processing function)也叫字符串處理函數,指的是編程語言中用來進行字符串處理的函數,如C,pascal,Visual以及LotusScript中進行字符串拷貝,計算長度,字符查找等的函數。
字符串主要用于編程,概念說明、函數解釋、用法詳述見正文,這里補充一點:字符串在存儲上類似字符數組,所以它每一位的單個元素都是可以提取的,如s=“abcdefghij”,則s[1]=“a”,s[10]="j"。
而字符串的零位正是它的長度,如s[0]=10(※上述功能Ansistring沒有。),這可以給我們提供很多方便,如高精度運算時每一位都可以轉化為數字存入數組。
字符串函數的應用
1、連接運算 concat(s1,s2,s3…sn) 相當于s1+s2+s3+…+sn.
例:concat(‘11’,'aa’)='11aa’;
2、求子串。 Copy(s,I,I) 從字符串s中截取第I個字符開始后的長度為l的子串。
例:copy(‘abdag’,2,3)=’bda’
3、刪除子串。過程 Delete(s,I,l) 從字符串s中刪除第I個字符開始后的長度為l的子串。
例:s:=’abcde’;delete(s,2,3);結果s:=’ae’
4、插入子串。 過程Insert(s1,s2,I) 把s1插入到s2的第I個位置
例:s:=abc;insert(‘12’,s,2);結果s:=’a12bc’
5、求字符串長度 length(s) 例:length(‘12abc’)=5
在ASP中 求字符串長度用 len(s)例: len("abc12")=5
6、搜索子串的位置 pos(s1,s2) 如果s1是s2的子串 ,則返回s1的第一個字符在s2中的位置,若不是子串,則返回0.
例:pos(‘ab’,’12abcd’)=3
7、字符的大寫轉換。Upcase(ch) 求字符ch的大寫體。
例:upcase(‘a’)=’A’
8、數值轉換為數串。 過程 Str(x,s) 把數值x化為數串s.
例:str(12345,s); 結果s=’12345’
9、數串轉換為數值。 過程val(s,x,I) 把數串s轉化為數值x,如果成功則I=0,不成功則I為無效字符的序數,第三個參數也可不傳
例:val(‘1234’,x,I);結果 x:=1234
參考資料:百度百科?字符串函數的應用
本文名稱:mysql符串怎么拼接,MySQL 字符串拼接
URL網址:http://vcdvsql.cn/article2/hshooc.html
成都網站建設公司_創新互聯,為您提供品牌網站制作、網站維護、網站制作、建站公司、服務器托管、域名注冊
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯