MariaDBでは、MID()
SUBSTRING()
の同義語です 。指定された文字列から部分文字列を返します。
MariaDBのドキュメントによると、これはSUBSTRING(str,pos,len)
の同義語です。 SUBSTRING()
の構文 ただし、私のテストでは、さまざまな形式のすべてで機能することが示されています。
構文
MariaDBのドキュメントによると、構文は次のようになります。
MID(str,pos,len)
ただし、次のフォーム(SUBSTRING()
と同じフォーム)で機能することがわかりました。 サポート):
MID(str,pos),
MID(str FROM pos),
MID(str,pos,len),
MID(str FROM pos FOR len)
str
文字列、pos
は部分文字列の開始位置であり、len
抽出する文字数です。
例
基本的な例は次のとおりです。
SELECT MID('Drink your beer', 7);
結果:
+---------------------------+ | MID('Drink your beer', 7) | +---------------------------+ | your beer | +---------------------------+
これは同じ例ですが、FROM
を使用しています 構文:
SELECT MID('Drink your beer' FROM 7);
結果:
+-------------------------------+ | MID('Drink your beer' FROM 7) | +-------------------------------+ | your beer | +-------------------------------+
部分文字列の長さ
抽出する部分文字列の長さを指定する例を次に示します。これは、MariaDBのドキュメントがMID()
について引用している唯一の構文です。 機能。
SELECT MID('Drink your beer', 7, 4);
結果:
+------------------------------+ | MID('Drink your beer', 7, 4) | +------------------------------+ | your | +------------------------------+
そしてここではFROM...FOR
を使用しています 構文:
SELECT MID('Drink your beer' FROM 7 FOR 4);
結果:
+-------------------------------------+ | MID('Drink your beer' FROM 7 FOR 4) | +-------------------------------------+ | your | +-------------------------------------+
ネガティブポジション
位置に負の値を指定すると、開始位置が文字列の末尾から逆方向にカウントされます。
SELECT MID('Drink your beer', -9);
結果:
+----------------------------+ | MID('Drink your beer', -9) | +----------------------------+ | your beer | +----------------------------+
FROM
を使用する場合は、負の位置も使用できます。 構文:
SELECT MID('Drink your beer' FROM -9 FOR 4);
結果:
+--------------------------------------+ | MID('Drink your beer' FROM -9 FOR 4) | +--------------------------------------+ | your | +--------------------------------------+
この場合、部分文字列の長さも設定します。
Oracleモード
Oracleモードの場合、開始位置は0
(ゼロ)は1
として扱われます 。ただし、開始位置は1
1
としても扱われます 。
これは、0
である他のモードとは対照的です。 空の文字列を返します。
例:
SET SQL_MODE=ORACLE;
SELECT
MID('Drink your beer', 0) AS "0",
MID('Drink your beer', 1) AS "1";
結果:
+-----------------+-----------------+ | 0 | 1 | +-----------------+-----------------+ | Drink your beer | Drink your beer | +-----------------+-----------------+
ここではデフォルトモードになっています:
SET SQL_MODE=DEFAULT;
SELECT
MID('Drink your beer', 0) AS "0",
MID('Drink your beer', 1) AS "1";
結果:
+------+-----------------+ | 0 | 1 | +------+-----------------+ | | Drink your beer | +------+-----------------+
ヌル引数
引数のいずれか(またはすべて)がnull
の場合 、MID()
関数はnull
を返します :
SELECT
MID(null, 3, 3),
MID('Beer', null, 3),
MID('Beer', 3, null),
MID(null, null, null);
結果:
+-----------------+----------------------+----------------------+-----------------------+ | MID(null, 3, 3) | MID('Beer', null, 3) | MID('Beer', 3, null) | MID(null, null, null) | +-----------------+----------------------+----------------------+-----------------------+ | NULL | NULL | NULL | NULL | +-----------------+----------------------+----------------------+-----------------------+
引数がありません
MID()
を呼び出す 引数を渡さないとエラーが発生します:
SELECT MID();
結果:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1