2017-07-19 8 views
-2

私はそれに隠された文字があると思われるデータを格納しているテーブルを持っています。MYSQLテーブルに切り捨てられた行が表示されます

私はselect * from tableを実行します。次のデータを取得します

+----------+----------------------+-----------+-----------------+---------------------+--------------------+------+-----------+ 
| account | ip     | proxy  | proxyip   | customer   | SalesStaffInitials | LCR | realproxy | 
+----------+----------------------+-----------+-----------------+---------------------+--------------------+------+-----------+ 
| XXX.XXX.XXX.XXX | XXXXXX Network Inc. | XX    | NULL | proxyXXX 
+----------+----------------------+-----------+-----------------+---------------------+--------------------+------+-----------+ 

これは4番目の列でも、表示されている最初のものが 'proxyip'列であることがわかります。

トリム()を使って空白を取り除いてみました。また、隠し文字を取り除くために、次のクエリを試してみました。

UPDATE customers set realproxy = TRIM(REPLACE(プロキシ、CONVERT(char)(USING utf8)、 '')));

また、ファイルをCSVにエクスポートすると、最初の3列が1行になり、残りの列が別の行に表示されます。

誰もこのようなことを見たことがありますか?他に何かを含める必要がある場合はお知らせください、ありがとうございます。

edit1:私はちょうど各列にselectを実行しました。それは外に見える唯一の列がプロキシです。

答えて

0

proxyip列の値の先頭に改行文字または改行文字があるように聞こえます。

は、その文字を見つけるためには、私は SELECT HEX(proxyip) FROM ...

改行文字がx'0A'ある値の16進数表現を取得するために、HEX関数を使用し、キャリッジリターンはx'0D'です。あるいは、そこに他の制御文字があるかもしれません。 (例えば、タブ文字はx'09'です。

あなたはそれらの文字のすべてのオカレンスを削除したい場合は、

SELECT  REPLACE(REPLACE(proxyip,'\n',''),'\r','') AS new_proxyip 
     , HEX(REPLACE(REPLACE(proxyip,'\n',''),'\r','')) AS hex_new_proxyip 
    FROM ... 

REPLACE関数は、同様UPDATE文で使用することができます...

UPDATE ... 
    SET mycol = REPLACE(REPLACE(mycol ,'\n',''),'\r','') 
関連する問題