====== 10 文字列関数MySQL ====== 1. CONCAT - 文字列を連結 SELECT CONCAT('Ma', 'ria', 'DB'); -- 'MariaDB' 引数はいくつでもOK。ちなみに、「--」はSQLのコメント記法。 2. SUBSTRING - 文字列を指定した位置で切り出し 上は標準SQL。下はMySQL独自。 ・前から6番目以降の文字列を取得 SELECT SUBSTRING('Knowledgebase' FROM 5); -- 'edgebase' SELECT SUBSTRING('Knowledgebase',5); -- 'edgebase' ・前から3番目以降、7文字を取得 SELECT SUBSTRING('Knowledgebase',FROM 3, FOR 7); -- 'wledgeb' SELECT SUBSTRING('Knowledgebase',3,7); -- 'wledgeb' 3. SUBSTRING_INDEX - 文字列を分割 第一引数の文字列を、第二引数のデリミタで分割し、第三引数の値より前の文字列を返す。第三引数を負の数にすると後ろからになる。 SELECT SUBSTRING_INDEX('kb.askmonty.org', '.', 1); -- 'kb' SELECT SUBSTRING_INDEX('kb.askmonty.org', '.', 2); -- 'kb.askmonty' SELECT SUBSTRING_INDEX('kb.askmonty.org', '.', 3); -- 'kb.askmonty.org' SELECT SUBSTRING_INDEX('kb.askmonty.org', '.', -1); -- 'org' SELECT SUBSTRING_INDEX('kb.askmonty.org', '.', -2); -- 'askmonty.org' SELECT SUBSTRING_INDEX('kb.askmonty.org', '.', -3); -- 'kb.askmonty.org' 4. RIGHT/LEFT - 右/左から指定文字列を返す SELECT RIGHT('MariaDB', 2); -- 'DB' SELECT LEFT('MariaDB', 2); -- 'Ma' 5. UPPER/LOWER - 文字列を全部大文字/小文字に変換 SELECT UPPER('MariaDB'); -- 'MARIADB' SELECT LOWER('MariaDB'); -- 'mariadb' 6. TRIM - 与えた文字列の前後から空白を除去 SELECT TRIM(' hoge '); -- 'hoge' 7. LENGTH/CHAR_LENGTH - 与えた文字列のバイト数/文字数を返す SELECT LENGTH('MariaDB'); -- 7 SELECT LENGTH('マリア'); -- 9 SELECT CHAR_LENGTH('MariaDB'); -- 7 SELECT CHAR_LENGTH('マリア'); -- 3 8. CAST - 文字列を指定した型に変換 SELECT CAST('2013-07-02 00:00:00' AS DATE); 9. LOCATE - 検索文字列の出現位置を取得 SELECT LOCATE('bar', 'foobarbar'); -- 4 10. REPLACE - 文字列置換 SELECT REPLACE('www.mariadb.org', 'w', 'Ww'); -- 'WwWwWw.mariadb.org'