SQLite クラシック チュ...login
SQLite クラシック チュートリアル
著者:php.cn  更新時間:2022-04-13 17:05:02

SQLite Glob 句


SQLite の GLOB 演算子は、ワイルドカードで指定されたパターンのテキスト値と一致するために使用されます。検索式がパターン式と一致する場合、GLOB 演算子は true (1) を返します。 LIKE 演算子とは異なり、GLOB では大文字と小文字が区別され、次のワイルドカード文字については UNIX 構文に従います。

  • スター (*)

  • 疑問符 (?)

スター (*) は、0、1 つ以上の数字または文字を表します。疑問符 (?) は 1 つの数字または文字を表します。これらの記号は組み合わせて使用​​できます。

文法

* と ? 基本的な構文は次のとおりです:

SELECT FROM table_name
WHERE column GLOB 'XXXX*'

または

SELECT FROM table_name
WHERE column GLOB '*XXXX*'

またはtable_name
どこから列column glob 'xxxx?'



or

orcolumn where column glob '?xxxx'or

selectfromtable_name
wherecolumn glob'?xx xx? '

or

SELECT FROM table_name
WHERE column GLOB '????'


AND または OR 演算子を使用して、N 個の条件を組み合わせることができます。ここで、XXXX には任意の数値または文字列値を指定できます。

次の例は、「*」演算子と「?」演算子を使用した GLOB 句の違いを示しています。 200の場合

WHERE SALARY GLOB '*200*'どこでも200を含む値を検索します2桁目と3桁目を検索します 00の3桁の任意の値2で始まり、少なくとも3文字の長さの値を検索します2で終わる値を検索します2 番目の桁が 2 で、3 で終わる値を検索します先頭から 5 桁の長さの値を検索します2で終わり3で終わります
WHERE SALARY GLOB '?00*'
WHERE SALARY GLOB '2??'
WHERE SALARY GLOB '*2'
WHERE SALARY GLOB '?2*3'
WHERE SALARY GLOB '2???3'

私たちは、会社のテーブルに次の記録があると仮定して、実用的な例を挙げてみます。 32 カリフォルニア 20000.0

2 アレン 25 テキサス 15000.0
3 テディ 23 ノルウェー 20000.0
4 マークモンド 65000.0
5 デビッド 27 テキサス 85000.0
6 キム 22 サウスホール 45000.0
7 ジェームス 24トン 10000.0


以下は例です、これは、AGE が 2 で始まる COMPANY テーブル内のすべてのレコードを表示します:

sqlite> SELECT * FROM COMPANY WHERE AGE GLOB '2*';

結果 次の結果が生成されます:

IID NAME AGE Address Salary
--------------------------------- -------------------------------------------------- - ---------------
2 アレン 25 テキサス 15000.0
3 テディ 23 ノルウェー 20000.0
4 マーク 25 リッチモンド 65000.0
5 デビッド 27 テキサス 85000.0
6 キム 22 サウスホール 45000.0
7 James 24 Houston 10000.0
以下は、ADDRESS テキストにハイフン (-) が含まれる COMPANY テーブル内のすべてのレコードを表示する例です。 *';これは次の結果が生成されます:

ID--------------
4マーク -