差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
technote:sqlex [2022/09/25 16:45] – kabe | technote:sqlex [2022/10/12 22:58] (現在) – [regexp 演算子 (ビルトイン)] ohyeah | ||
---|---|---|---|
行 1: | 行 1: | ||
====== 拡張SQL ====== | ====== 拡張SQL ====== | ||
- | ====== 拡張 SQL ====== | ||
ACFinder では、[[https:// | ACFinder では、[[https:// | ||
行 7: | 行 6: | ||
===== match 演算子 (ビルトイン) ===== | ===== match 演算子 (ビルトイン) ===== | ||
- | 「大文字/小文字」「ひらがな/カタカナ」「全角/半角」の違い及び「表記の揺れ」を全て同一視する、like 類似演算子です。1文字ワイルドカードの ' | + | 「大文字/小文字」「ひらがな/カタカナ」「全角/半角」の違い及び「表記の揺れ」を全て同一視する、like 類似演算子です((SQLite3 では match 演算子の実装はユーザに任せられているので、SQLite3 を使った他のシステムの match 演算子が同じ機能を持つとは限りません))。1文字ワイルドカードの ' |
< | < | ||
完全一致: | 完全一致: | ||
行 14: | 行 13: | ||
部分一致: | 部分一致: | ||
</ | </ | ||
- | 同一視したくない文字種がある場合は、match 関数を使用してください。option パラメータは省略可能で、省略した場合は ' | + | 同一視したくない文字種がある場合は、match 関数を使用してください。option パラメータは省略可能で、省略した場合は ' |
+ | なお、match 演算子は、内部で match(' | ||
< | < | ||
MATCH(' | MATCH(' | ||
行 24: | 行 24: | ||
v: 濁音、半濁音、長音、拗音、促音などの表記の揺れを同一視する | v: 濁音、半濁音、長音、拗音、促音などの表記の揺れを同一視する | ||
</ | </ | ||
- | match 演算子は、内部で < | + | ACFinder 080921 版以降では、' |
- | なお、match 演算子の実装はユーザに任せられています。SQLite3 を使った他システムの match 演算子が同じ機能を持つとは限りません。 | ||
===== regexp 演算子 (ビルトイン) ===== | ===== regexp 演算子 (ビルトイン) ===== | ||
行 36: | 行 35: | ||
Perl 5.8 互換といっても、修飾子(modifier)は使えません。その代わり独自拡張として、「大文字/小文字」「ひらがな/カタカナ」「全角/半角」の違い及び「表記の揺れ」を全て同一視するようになっています。 | Perl 5.8 互換といっても、修飾子(modifier)は使えません。その代わり独自拡張として、「大文字/小文字」「ひらがな/カタカナ」「全角/半角」の違い及び「表記の揺れ」を全て同一視するようになっています。 | ||
- | 同一視したくない文字種がある場合は、regexp 関数を使用してください。書式は match 関数と同じです。全ての文字種の違いを識別する場合は、 | + | 同一視したくない文字種がある場合は、regexp 関数を使用してください。書式及び option の意味は match 関数と同じです。全ての文字種の違いを識別する場合は、 |
< | < | ||
REGEXP(' | REGEXP(' | ||
</ | </ | ||
- | となります。regexp 演算子は、内部で regexp(' | + | となります。regexp 演算子は、内部で regexp(' |
regexp を件数が多いデータベースで使用すると、検索が遅くなります。単純に文字種の違いを同一視するだけなら、高速な match 演算子をお使いください。 | regexp を件数が多いデータベースで使用すると、検索が遅くなります。単純に文字種の違いを同一視するだけなら、高速な match 演算子をお使いください。 | ||
行 103: | 行 102: | ||
===== ifnullstr 関数 (ビルトイン) ===== | ===== ifnullstr 関数 (ビルトイン) ===== | ||
- | 標準ビルトイン関数の IFNULL と使い方は同じですが、IFNULL(X, | + | 標準ビルトイン関数の IFNULL と使い方は同じですが、IFNULL(X, |
< | < | ||
CASE WHEN X ISNULL OR X = '' | CASE WHEN X ISNULL OR X = '' |