VillageSQL is a drop-in replacement for MySQL with extensions.
All examples on this page work on VillageSQL. Install Now →
結合と分割
CONCAT — 文字列を連結します。CONCAT は引数に NULL があると NULL を返します。CONCAT_WS は NULL 値をスキップしますが、NULL でない値の間の区切り文字は保持します。
SUBSTRING / SUBSTR / MID — 文字列の一部を取り出します。
文字列内の検索
LOCATE / POSITION / INSTR — 部分文字列を探します。REGEXP は POSIX 正規表現の構文を使います。関数形式には REGEXP_LIKE()(MySQL 8.0 以降)を使ってください。
文字列の変更
REPLACE — 部分文字列のすべての出現を置き換えます。長さと比較
MySQL には 2 つの長さ関数があり、マルチバイト文字に対して異なる結果を返します。CHAR_LENGTH を使ってください。
STRCMP — 2 つの文字列を比較し、-1、0、または 1 を返します。
整形
FORMAT — 数値を桁区切り付きで整形します。よく使うパターン
メールアドレスからドメインを取り出します。よくある質問
MySQL の文字列比較は大文字と小文字を区別しますか?
デフォルトでは区別しません。文字列比較は列の照合順序を使い、一般的な照合順序のほとんどは大文字と小文字を区別しません(例:utf8mb4_general_ci。ci は case-insensitive の意味です)。大文字と小文字を区別する比較には、_cs の照合順序または BINARY 演算子を使います。
CHAR_LENGTH と LENGTH の違いは何ですか?
LENGTH はバイト数を返し、CHAR_LENGTH は文字数を返します。ASCII 文字列では同じです。マルチバイト文字(アクセント付き文字、絵文字、CJK)を含む UTF-8 文字列では異なります。ユーザーに見える文字列長の制限には CHAR_LENGTH を使ってください。
トラブルシューティング
関連項目
- MySQL の文字セットと照合順序 — 文字列関数は照合順序によって動作が異なる
- MySQL の全文検索 — LIKE を超えた大規模な文字列検索
- MySQL の列エイリアス — 文字列式が生成する列に名前を付ける
- MySQL の LIKE — これらの関数と一緒によく使われるパターン演算子
- MySQL の GROUP_CONCAT — グループ内の値を 1 つの文字列に連結する