MySQL - SUBSTRING
UDEMY-The Ultimate MySQL Bootca…The Ultimate MySQL Bootcamp:Go from SQL Beginner to Expert
正式な書類
一番いい方法はやはり公式文書を見ることです.
という方法もあります. のマイナス値を加えるとどうなりますか?
実際のデータに適用しましょう.
前回勉強したCONCATを使えばいいです.
SUBSTRING
正式な書類
一番いい方法はやはり公式文書を見ることです.
CONCAT
は、SUBSTRING
のようなString Functionの1つである.実はサーブが有名です.SQLだけでなく、他にもいろいろな言語があります.mysql> SELECT SUBSTRING('Hello World', 1,5);
+-------------------------------+
| SUBSTRING('Hello World', 1,5) |
+-------------------------------+
| Hello |
+-------------------------------+
1 row in set (0.00 sec)
►しかし、注意すべき点があります.通常は他のプログラミング言語(Java、JavaScriptなど…)でsubstringを使用すると、'Hello World.substring(0,5)'
というようにhelloが出力されます.0番目のインデックスから5番目のインデックスに切り取る前に(5番目のインデックスは含まれません).ただし、SQLではSUBSTRING
を使用する方法が異なります.文字列を最初のパラメータとしてSUBSTRINGに入れ、インデックスは0ではなく1から、2番目のパラメータとしてのインデックスから、3番目のパラメータは文字数を表します.JavaScriptのsubstr
関数とはあまり差がないようです.(substring
関数ではなくsubstr
)mdn- substrmysql> SELECT SUBSTRING('Hello World' , 7);
+------------------------------+
| SUBSTRING('Hello World' , 7) |
+------------------------------+
| World |
+------------------------------+
1 row in set (0.00 sec)
3番目のパラメータを追加しないで、2番目のパラメータだけを追加します.すると、7番目のインデックス(インデックスは1から)から最後の文字に出力されます.mysql> SELECT SUBSTRING('Hello World', -3);
+------------------------------+
| SUBSTRING('Hello World', -3) |
+------------------------------+
| rld |
+------------------------------+
1 row in set (0.01 sec)
実際のデータに適用しましょう.
mysql> select title from books;
+-----------------------------------------------------+
| title |
+-----------------------------------------------------+
| The Namesake |
| Norse Mythology |
| American Gods |
| Interpreter of Maladies |
| A Hologram for the King: A Novel |
| The Circle |
| The Amazing Adventures of Kavalier & Clay |
| Just Kids |
| A Heartbreaking Work of Staggering Genius |
| Coraline |
| What We Talk About When We Talk About Love: Stories |
| Where I'm Calling From: Selected Stories |
| White Noise |
| Cannery Row |
| Oblivion: Stories |
| Consider the Lobster |
+-----------------------------------------------------+
16 rows in set (0.00 sec)
------
mysql> SELECT SUBSTRING(title, 1, 10) FROM books;
+-------------------------+
| SUBSTRING(title, 1, 10) |
+-------------------------+
| The Namesa |
| Norse Myth |
| American G |
| Interprete |
| A Hologram |
| The Circle |
| The Amazin |
| Just Kids |
| A Heartbre |
| Coraline |
| What We Ta |
| Where I'm |
| White Nois |
| Cannery Ro |
| Oblivion: |
| Consider t |
+-------------------------+
16 rows in set (0.00 sec)
10文字で終わって最後に...
を貼りたい場合はどうすればいいですか?前回勉強したCONCATを使えばいいです.
SELECT
CONCAT
(
SUBSTRING(title,1,10),
'...'
) AS 'short title'
FROM books;
+---------------+
| short title |
+---------------+
| The Namesa... |
| Norse Myth... |
| American G... |
| Interprete... |
| A Hologram... |
| The Circle... |
| The Amazin... |
| Just Kids... |
| A Heartbre... |
| Coraline... |
| What We Ta... |
| Where I'm ... |
| White Nois... |
| Cannery Ro... |
| Oblivion: ... |
| Consider t... |
+---------------+
16 rows in set (0.00 sec)
Reference
この問題について(MySQL - SUBSTRING), 我々は、より多くの情報をここで見つけました https://velog.io/@dlawogus/MySQL-SUBSTRINGテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol