データベース関数は、0 個以上の入力値を受け取り、出力値を返すことができる特定の関数を備えたモジュールです。 MySQL には、データの処理と分析のための多くのシステム関数が用意されています。この記事では、よく使用される 10 個の文字列関数とその他の関連関数を紹介します。
CONCAT()
CONCAT(str1,str2,…)) 関数は、複数の文字列を連結した後に文字列を返すために使用されます。例:
SELECT CONCAT('MySQL', '字符串', '函数') AS str;
If この関数 Ifのパラメータが NULL の場合、戻り結果も NULL になります。例:
SELECT CONCAT('MySQL', NULL, '函数') AS str;
文字列定数の場合は、直接一緒に記述することもできます。例:
SELECT 'MySQL' '字符串' '函数' AS str;
上記のメソッドは文字列定数を接続する場合にのみ使用でき、フィールド値を接続する場合には使用できません。
SQL モード PIPES_AS_CONCAT が有効な場合、Oracle や PostgreSQL と同様に、MySQL 論理 OR 演算子 (||) を使用して文字列を連結することもできます。
CONCAT(str1,str2,…)) 関数に加えて、CONCAT_WS(separator,str1,str2,…)) 関数は、指定された区切り文字 separator を使用して複数の文字列を接続することを意味します。区切り文字は次のとおりです。 NULL。NULL を返します。例:
SELECT CONCAT_WS('-', 'MySQL', NULL, '字符串') AS str1,
LOWER()
LOWER(str) および LCASE(str) 関数は、文字列を小文字に変換するために使用されます。例:
SELECT LOWER('MySQL字符串函数') AS str1, LCASE('MySQL字符串函数') AS str2;
MySQL の場合変換関数はバイナリ文字列 (BINARY、VARBINARY、BLOB) をサポートしていませんが、処理前に非バイナリ文字列に変換できます。例:
SELECT LOWER(BINARY 'MySQL字符串函数') AS str1,
UPPER()
UPPER(str) および UCASE(str) 関数は、文字列を大文字に変換するために使用されます。例:
SELECT UPPER('MySQL字符串函数') AS str1, UCASE('MySQL字符串函数') AS str2;
LENGTH()
LENGTH(str) 関数と OCTET_LENGTH(str) 関数は、文字列のバイト長を返すために使用されます。例:
SELECT LENGTH('MySQL字符串函数') AS len1, OCTET_LENGTH('MySQL字符串函数') AS len2;
utf8mb4 エンコードでは、1 つの中国語文字が 3 バイトを占めます。
さらに、CHAR_LENGTH(str) 関数と CHARACTER_LENGTH(str) 関数は、文字列の文字長、つまり文字数を返すために使用されます。例:
SELECT CHAR_LENGTH('MySQL字符串函数') AS len1, CHARACTER_LENGTH('MySQL字符串函数') AS len2;
BIT_LENGTH(str) 関数は、文字列のビット長 (ビット数) を返すために使用されます。例:
SELECT BIT_LENGTH('MySQL字符串函数') AS len;
1 バイトには 8 ビットが含まれます。
SUBSTRING()
SUBSTRING(str,pos)、SUBSTRING(str FROM pos)、SUBSTRING(str,pos,len)、および SUBSTRING(str FROM pos FOR len) 関数はすべて、 used 指定された位置 pos から始まる部分文字列を返す場合、len は返される部分文字列の長さを表します; pos は 0、つまり空の文字列を返すことを意味します。例:
SELECT SUBSTRING('MySQL字符串函数', 6) AS str1,
位置パラメータ pos には負の数を指定できます。この場合、返される部分文字列は文字列の右側の pos 文字から始まります。例:
SELECT SUBSTRING('MySQL字符串函数', -2) AS str1,
さらに、SUBSTR() 関数と MID() 関数は SUBSTRING() 関数の同義語であり、上記の 4 つの形式もサポートしています。
LEFT(str,len) 関数は文字列 str の左側の len 文字を返し、RIGHT(str,len) 関数は文字列 str の右側の len 文字を返します。例:
SELECT LEFT('MySQL字符串函数',5) AS str1,
SUBSTRING_INDEX(str,delim,count) 関数は、カウント区切り文字 delim の前の部分文字列を返します。 count が正の場合、左から数えて左側のすべての文字を返します。count が負の場合、右から数えて右側のすべての文字を返します。例:
SELECT SUBSTRING_INDEX('张三;李四;王五', ';', 2) AS str1,[object Object]
TRIM()
TRIM([remstr FROM] str) 関数は、文字列 str の両側にあるすべての remstr 文字列を削除した後で部分文字列を返すために使用されます。Remstr のデフォルトは次のとおりです。スペース。例:
SELECT TRIM(' MySQL字符串函数 ') AS str1,
TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str) 関数は、文字列の両側/左側/右側にあるすべての remstr 文字列を削除した後、部分文字列を返すために使用されます。 str では、両側 (BOTH) の文字列がデフォルトで削除され、 remstr のデフォルトはスペースです。例:
SELECT TRIM(LEADING ' ' FROM ' MySQL字符串函数 ') AS str1,
LPAD()/RPAD()
LPAD(str,len,padstr) 関数は、文字列 str の左側が長さになるまで Padstr で埋められることを意味します。 len; RPAD( str,len,padstr) 関数は、長さが len になるまで文字列 str の右側に Padstr を使用することを意味します。例:
SELECT LPAD(123, 6, '0') AS str1, LPAD(123, 2, '0') AS str2,
文字列 str の長さが len より大きい場合、文字列を右側から切り捨てることと同じです。
さらに、REPEAT(str,count) 関数を使用して、文字列 str count 回コピーし、結果を返します。
例:
INSTR()
INSTR (str,substr) 関数は、文字列内の部分文字列 substr を返すために使用されます。 str 最初に出現するインデックス位置。部分文字列が見つからない場合は、0 が返されます。例:
select INSTR('MySQL字符串函数', '字符串') AS index1,
さらに、LOCATE (substr,str) 関数を使用して、文字列 str 内で部分文字列 substr が最初に出現するインデックス位置を返すこともできます。これが、LOCATE (substr,str) 関数との唯一の違いです。 INSTR (str,substr) 関数、つまりパラメータの順序が逆になります。
LOCATE (substr,str,pos) この関数は、位置 pos から始まる文字列 str 内で部分文字列 substr が最初に出現するインデックス位置を返します。例:
SELECT LOCATE('S','MySQL Server', 5) AS ind;
FIELD (str, str1 ,str2,str3,…) この関数は、後続の文字列リスト内で文字列 str が出現する位置を返し、見つからない場合は 0 を返します。例:
SELECT FIELD('李四', '张三', '李四', '王五') AS ind;
FIND_IN_SET (str,strlist) この関数は、リスト文字列 strlist 内で文字列 str が出現する位置を返します。strlist はカンマで区切られた N 個の部分文字列で構成されます。例:
SELECT FIND_IN_SET('李四', '张三,李四,王五') AS ind;
REPLACE()
REPLACE (str,from_str,to_str) 関数は、文字列 str 内のすべての from_str を to_str に置換し、置換された文字列を返すために使用されます。例えば:###
SELECT REPLACE('MySQL字符串函数', '字符串', '日期') AS str1,
另外,INSERT (str,pos,len,newstr) 函数用于在字符串 str 的指定位置 pos 之后插入子串 newstr,替换随后的 len 个字符。例如:
SELECT INSERT('MySQL字符串函数', 6, 3, '日期') AS str;
REVERSE()
REVERSE (str) 函数用于将字符串 str 中的字符顺序进行反转。例如:
SELECT REVERSE('上海自来水来自海上')='上海自来水来自海上' AS "回文";
推荐学习:《mysql视频教程》
以上がMySQLでよく使われる文字列関数をまとめます!の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。