正規表現:(MySQLの)REGEXP

 

コラムPROD_NAMEが取得テキスト1000年を含んラインように

PROD_NAME製品からのPROD_NAMEを選択REGEXP「1000」

PROD_NAME BY ORDER

 

なぜトラブル正規表現を使用していますか?上記の例では、正規表現が(パフォーマンスも低減することができる)多くの利益をもたらすものではありません、

次の例を考えてみます。

PROD_NAME製品からのPROD_NAMEを選択REGEXP」.000'

PROD_NAME BY ORDER

 

OR試合

 

PROD_NAME製品からのPROD_NAMEを選択REGEXP '| 2000 1000'

PROD_NAME BY ORDER

 

 

PROD_NAME製品からのPROD_NAMEを選択REGEXP '[123]トン'

PROD_NAME BY ORDER

[| 2 | 3 1]トンの頭字語正規表現の[123]トン以上

 

マッチング範囲

マッチ0-9例えば

[0123456789]は[0-9] [1-3] [6-9] [AZ]は、任意の文字にマッチする単純化

 

特殊文字をマッチング

製品PROD_NAMEの中から選択PROD_NAME REGEXP '\\。'

PROD_NAME BY ORDER

特殊文字を一致させるためには、鉛のように\\を使用しなければなりません。\\ -検索- 、\\表情を表しています。

空白のメタキャラクタ

 

\\ Fの   フィード  \\ N改行   \\のR   キャリッジ  \\ Tのタブ  \\ V垂直タブ

\\\マッチバックスラッシュ

 

マッチング文字クラス

【:Alnum:] [-ZA-Z0-9]を有する任意の文字と数字

[:アルファ:]任意の文字(と[-ZAZ])

[ブランク:]とスペースとタブ[\\ T]

【:CNTRL:] ASC ||制御文字(ASC || 0〜31および127)

[:桁:]任意の数を有する([0-9])

[:下:]任意の小文字[AZ]

[:印刷:]任意の印刷可能文字

[:PUNCT:]どちらも[:alnum:]ないで[:CNTRL:]は任意の文字です 

[:スペース:]スペースを含む任意の空白文字

[:アッパー:]任意の大文字

【:XDIGIT:] [-FA-F0-9]を有する任意の16進数

 

 

マッチングの複数の例

* 0以上の一致

+つまたは複数のマッチ({1}に等しいです)

?0又は({0,1}に等しい)一致

{N}は、指定された数と一致します

{Nは}マッチの指定された数以上であります

{N、M}一致する番号の範囲(M 255)

 

 

ここではいくつかの例を示します。

入力:

pro_nameのGEGXP製品FROM SELECT PROD_NAME '\\(0-9)スティック?\\')

出力PROD_NAME

           TNT(1本のスティック)

           TNT(5スティック)

 

正規表現\\(0-9)スティック?\\)を説明する必要があります。\\(マッチ(

[0-9]は任意の数と一致します  

スティック?(それが0または1の出現の前に任意の文字と一致するように、オプションの?sの秒後)スティックと一致し、スティック

\\)試合が)に注意を払っていない?マッチスティックとスティックが非常に困難になります

 

以下は、私たちが4桁を一緒に一致するつもりこれの別の例であります

pro_nameのGEGXP '{4} [:桁] []' ProductsからPROD_NAMEを選択

 

{4}、その直前の文字(任意の数)がマッチングに一緒に接続された4桁の数字4の発生を求めます

 

上記の正規表現も書くことができる:[0-9] [0-9] [0-9] [0-9]

 

上記の概要は、どこにでもテキスト内の文字列にマッチします。特定の位置のテキストと一致するためには、ロケータを使用することが必要です

^テキストが始まります

テキストの$終了

[] [:: <]単語の先頭

[] [::>]言葉の終わり

 

たとえば、すべての製品がどのように行う、始めの(小数点開始番号を含む)の数を見つけたいですか?

簡易検索[0-9]または\\。[:桁:]それはどこにでもマッチするテキスト内の一致を見つけることができません\\ので。

解決策は、使用することですロケータを ^

pro_nameのGEGXP製品からのPROD_NAMEをSELECT '^ [0-9 \\。]'

 

 

 

 

 

スプライシングフィールド

連結方式の()関数を使用している使用することができます

 

例:

SELECTの連結方式(vend_name、 '('、vend_country、 ')')vend_name BYベンダーのORDER FROM;

 

すなわち、文字列の複数の連結()スプライス配列は、長い文字列を形成するように接続されています。

 

 

エアバスとの不要なデータを削除します。

SELECT連結方式のvend_name BYベンダーORDER FROM(vend_name、 '('、RTRIM(vend_country)、 ')');

RTRIM()関数値のすべてのスペースを削除する権利

 

算術演算を実行します

 

演算子演算子のMysql

+プラス

- レス

*乗算

/部門

 

エントリー

SELECT PROD_ID、数量、ITEM_PRICE、数量* ITEM_PRICEをexpanded_price AS

OrderItems FROM WHERE列order_num = 2005

 

 

データ処理機能を使用します

機能の実装のほとんどは、機能の次の種類をサポートしています

テキスト文字列を処理する(例えば、削除または充填は、大文字または小文字に変換されます)。

数値データに対して算術演算を実行すること(例えば、代数の絶対値を返します)。

処理日時値の、及び特定のコンポーネント(例えば、二つの日付、検出の有効期限を返す)日付と時刻関数からこれらの値を取ります。

使用されている特定情報DBMSリターン(例えばログイン情報とリターンように、バージョンの詳細を確認してください)システム機能の

 

例えばRtrim文字()右のスペース右の列の値を削除

 

アッパー()関数

エントリー

SELECT vend_name、vend_name BYベンダーのORDER FROM AS vend_name_upcaseアッパー(vend_name)

 

アッパーには、()大文字にテキストに変換します。

 

 

一般的に使用されるテキスト処理機能

左()左側の文字を返します。

長さ()は、文字列の長さを返します

部分文字列の文字列を見つけるために()を探します

LOWER()小文字に文字列

LTRIM()文字列を左にスペースを削除

右側の文字列を返します)(右

RTRIM()文字列の右のスペースは削除します

SOUNDEX()は、文字列値を返します。SOUNDEX

)(SUBSTRINGは文字の文字列を返します。

大文字に文字列を変換するためにアッパー()

 

これにより、任意のテキストが音声モードアルゴリズムに英数字の文字列の記述が発現さSOUNDEXを説明します。

主要

CUST_NAME、cust_contact = 'Y.Lie' 顧客からcust_contactを選択します。

以下は、検索に使用のSoundex()関数を記述し、それは、連絡先の名前の発音がY.Lieの全てに似ていると一致します

SELECT CUST_NAME、顧客からのcust_contact WHERE Soudex(cust_contact)= Soudex( 'Y.Lie');

 

 

 

日付関数

日付と時刻の使用ハンドラ

 

数値ハンドラ

 

 

集計関数

おすすめ

転載: www.cnblogs.com/mzdljgz/p/11387784.html