【MySQL 文字列関数】
LENGTH関数
LENGTH関数は文字列の長さを返す関数です。
項目
|
内容
|
書式
|
length(文字数)
|
文字列
|
何文字分を取得するか?という数字を入力します。
|
全角、半角を区別してバイト数を返します。
何をいっているのか?というと英語はアルファベットを使います。
一方日本語はひらがなや漢字を使っています。
文章をあらわすのは英語でしたが、日本人も使うのでひらがなや漢字を使えるようになりました。
しかし、アルファベットの大きさでは表現できないため2倍の大きさが必要になったのです。
そのため、次のようなルールができました。
種類
|
全角/半角
|
領域
|
バイト数
|
アルファベット
|
半角
|
1つの領域が必要
|
1バイト
|
ひらがな・漢字
|
半角
|
2つの領域が必要
|
2バイト
|
アルファベットからみるとひらがなや漢字は文字2個分になります。
このことから何バイト?という視点から1文字目なの?2文字目なの?ということが気になりだしたのです。
このため、プログラムをする際に全角半角を対象とした開発をする場合は
全角を1文字とみるのか?2文字分とみるのか?
という意識が仕様によっては必要になります。
select "length(12345)" as "SQL", length(12345) as 結果 from dual
数字の桁数を知ることができます。
|
select "length('abcde')" as "SQL", length('abcde') as 結果 from dual
アルファベット(半角)の文字数を知ることができます。
|
select "length(convert('あいうえお' using sjis))" as "SQL", length(convert('あいうえお' using sjis)) as 結果 from dual
ひらがな(全角)のバイト数を知ることができます。
|
select "length(convert('あaいiうuえeおo' using sjis))" as "SQL", length(convert('あaいiうuえeおo' using sjis)) as 結果 from dual
ひらがな(全角)とアルファベット(半角)が混在した場合、その全体のバイト数を知ることができます。
|
select "length('')" as "SQL", length('') as 結果 from dual
空文字である場合は「0」が返ります。
|
select "length(NULL)" as "SQL", length(NULL) as 結果 from dual
NULLを調べてしまった場合は、「NULL」が返ります。
|
「MySQL 5.6 Command Line Client」で実行したケース
日本語のひらがなや漢字を1文字として使いたい場合は「character_length」関数を用いてください。
【character_lengthを使用した例】
1文字を1文字として数えてくれます。
|
|
著作権情報 | 本ホームページに掲載されている情報等については、いかなる保証もいたしません。 本ホームページを通じて入手したいかなる情報も複製、販売、出版または使用させたり、 または公開したりすることはできません。 当方は、本ホームページを利用したいかなる理由によっての障害等が発生しても、 その結果本ホームページを利用された本人または他の第三者が被った損害について 一切の責任を負わないものとします。 |
|