MySQL文字列切り取り関連関数
6985 ワード
MySQL文字列切り取り関連関数
作業中、あるタスクが3つの結果に対応し、それぞれ異なるデータテーブルに格納されるなど、あるフィールドを分割子で構成する文字列をフィールド値としてデータベーステーブルにアクセスする必要がある場合があります.この場合、この3つの異なるテーブルのプライマリ・キーを所定の順序で組み合わせることができます(プライマリ・キーa:プライマリ・キーb:プライマリ・キーc).タスク対応カテゴリの詳細情報を別々に調べる必要がある場合、特定の位置の文字列(プライマリ・キーb)joinテーブルbを切り取って操作することができる.ちょうど最近もこの操作に遭遇して、わざわざMySQL文字列を切り取った関連関数を整理して、今後振り返るようにしました.
一、left(str,len)
は、文字列
作業中、あるタスクが3つの結果に対応し、それぞれ異なるデータテーブルに格納されるなど、あるフィールドを分割子で構成する文字列をフィールド値としてデータベーステーブルにアクセスする必要がある場合があります.この場合、この3つの異なるテーブルのプライマリ・キーを所定の順序で組み合わせることができます(プライマリ・キーa:プライマリ・キーb:プライマリ・キーc).タスク対応カテゴリの詳細情報を別々に調べる必要がある場合、特定の位置の文字列(プライマリ・キーb)joinテーブルbを切り取って操作することができる.ちょうど最近もこの操作に遭遇して、わざわざMySQL文字列を切り取った関連関数を整理して、今後振り返るようにしました.
一、left(str,len)
は、文字列
str
の左からのlen
文字を返します.いずれかのパラメータがNULLの場合、NULLが返されます.mysql> select left('shinejaie', 5);
+---------------------------------------------------------+
| left('shinejaie', 5) |
+---------------------------------------------------------+
| shine |
+---------------------------------------------------------+
1 row in set (0.00 sec)
、right(str, len)
str
len
。 NULL , NULL。
mysql> select right('shinejaie', 4);
+---------------------------------------------------------+
| right('shinejaie', 4) |
+---------------------------------------------------------+
| jaie |
+---------------------------------------------------------+
1 row in set (0.00 sec)
、substring_index(str, delim, count)
str
count
delim
。 count
, ( ) ; count
, ( ) 。 , 。 str delim , 。
mysql> select substring_index('home.cnblogs.com', '.', 2);
+---------------------------------------------------------+
| substring_index('home.cnblogs.com', '.', 2) |
+---------------------------------------------------------+
| home.cnblogs |
+---------------------------------------------------------+
1 row in set (0.00 sec)
mysql> select substring_index('home.cnblogs.com', '/', 2);
+---------------------------------------------------------+
| substring_index('home.cnblogs.com', '/', 2) |
+---------------------------------------------------------+
| home.cnblogs.com |
+---------------------------------------------------------+
1 row in set (0.00 sec)
、substring() substr() ---> substring(str, pos)、substring(str from pos)、substring(str, pos, len)、substring(str from pos for len)
4 , len
str
pos
; len
str
pos
, len
。 FROM
SQL 。pos
, , str
( ), pos
。 , pos
substring()
。
mysql> select substring('shinejaie', 6);
+---------------------------------------------------------+
| substring('shinejaie',6) |
+---------------------------------------------------------+
| jaie |
+---------------------------------------------------------+
1 row in set (0.00 sec)
mysql> select substr('shinejaie' from 6);
+---------------------------------------------------------+
| substr('shinejaie' from 6) |
+---------------------------------------------------------+
| jaie |
+---------------------------------------------------------+
1 row in set (0.00 sec)
mysql> select substring('shinejaie', -9, 5);
+---------------------------------------------------------+
| substring('shinejaie', -9, 5) |
+---------------------------------------------------------+
| shine |
+---------------------------------------------------------+
1 row in set (0.00 sec)
、trim([{both | leading | trailing} [remstr] form] str)
str
remstr
, 。 both
、leading
, trailing
, both
, 。remstr
, , 。
mysql> select trim(' shinejaie ');
+---------------------------------------------------------+
| trim(' shinejaie ') |
+---------------------------------------------------------+
| shinejaie |
+---------------------------------------------------------+
1 row in set (0.00 sec)
mysql> select trim(leading 'cn_' from 'cn_shinejaiecn_');
+---------------------------------------------------------+
| trim(leading 'cn_' from 'cn_shinejaiecn_') |
+---------------------------------------------------------+
| shinejaiecn_ |
+---------------------------------------------------------+
1 row in set (0.00 sec)
mysql> select trim(both 'cn_' from 'cn_shinejaiecn_');
+---------------------------------------------------------+
| trim(both 'cn_' from 'cn_shinejaiecn_') |
+---------------------------------------------------------+
| shinejaie |
+---------------------------------------------------------+
1 row in set (0.00 sec)
mysql> select trim(trailing 'cn_' from 'cn_shinejaiecn_');
+---------------------------------------------------------+
| trim(trailing 'cn_' from 'cn_shinejaiecn_') |
+---------------------------------------------------------+
| cn_shinejaie |
+---------------------------------------------------------+
1 row in set (0.00 sec)