2017-11-06 7 views
0

私のデータでは、\ x128から\ x160(16進数のデータ)ASCII文字までの範囲の迷惑データが得られます。)だから、正規表現が必要ですパターンを使用して、16進数の値を含むデータのみをフェッチし、残りのすべての値をキー列名以外のNULLにします。16進数のASCIIデータのみをフェッチするmysqlクエリ?

Input data : 
     **NAME PHONE ADDRESS** 
     anu  [email protected] hyderabad 
     vinu 1234 raj^am 
     ram  234 vizag 
     kheer 233&3 vz1m 
     palni 1333 rap#d 


    Required output data: 
     **NAME PHONE ADDRESS** 
     anu  [email protected] NULL 
     vinu NULL raj^am 
     kheer 233&3 NULL 
     plain NULL rap#d 

答えて

0

あなたが最初PHONE列と第二に、この結果に対して2クエリを使用する必要がありますがアドレス欄で= NULL電話REGEXP '[@ ^]' 2.UPDATE test1のSET住所 1.UPDATE test1のSET電話= NULL WHEREアドレスREGEXP '[@ ^]'

0
HEX(phone) REGEXP '^(..)*[89ABCDEF]' 

は、非Asciiバイトの電話機と一致します。

私はあなたがx128でもx160でもないと思っています。これらの数字は小数のように見えます。あなたが> = 128と< 160(= 160ない<注意を):キャッチしたい場合は

HEX(phone) REGEXP '^(..)*[89]' 

ザ・REGEXPは言う:

^ -- anchored at start 
(..)* -- skip any number of pairs of characters (remember they are hex) 
[89] -- match 8x or 9x 
-- ignore the rest of the column 
関連する問題