29

私の実験から、そうは見えません。これが本当なら、改行を削除する最良の方法は何ですか? 私は現在、削除する文字の TRIM が受け入れるパラメータを試しています。最初はトリミング\n\r.

4

10 に答える 10

46

改行は文字列の途中にあり、ソースデータを制御できませんでした。次のmysqlコマンドが機能しました。

REPLACE(FIELD,'\r\n',' ')
于 2009-03-05T23:09:17.880 に答える
23

はい、Trim()MySQL で動作します。選択肢は 2 つあります。

1) それを選択します。

select trim(BOTH '\n' from [field_name]) as field

それがうまくいかない場合は、試してください。'\r'うまくいかない場合は、試してください'\n\r'

2)テーブル内の不良データを更新に置き換えます...

update [table_name] set [field_name] = trim(BOTH '\n' from [field_name])

最初に選択して、どの改行 (\r または \n) があるかを判断することをお勧めします。

于 2011-05-02T22:55:58.883 に答える
10

標準の MySQLtrim関数は、文字列内の文字ではなく、完全に一致する文字列のみを削除するため、私が知っている他の言語のトリム関数とは異なります。このストアド関数は、PHP で見られる通常のトリムや、Python でのストリップなどに似ています。

CREATE FUNCTION `multiTrim`(string varchar(1023),remove varchar(63)) RETURNS varchar(1023) CHARSET utf8
BEGIN
  -- Remove trailing chars
  WHILE length(string)>0 and remove LIKE concat('%',substring(string,-1),'%') DO
    set string = substring(string,1,length(string)-1);
  END WHILE;

  -- Remove leading chars
  WHILE length(string)>0 and remove LIKE concat('%',left(string,1),'%') DO
    set string = substring(string,2);
  END WHILE;

  RETURN string;
END;

その後、次のことができるはずです。

select multiTrim(string,"\r\n\t ");

すべての改行、タブ、およびスペースを削除する必要があります。

于 2011-01-14T12:21:26.590 に答える
8

select trim(both '\r\n' from FIELDNAME) from TABLE;select trim(both '\n' from FIELDNAME) from TABLE;うまくいかない場合はうまくいくはずです。

于 2009-01-13T14:47:56.080 に答える
5

Trim()MySQLではスペースのみを削除します。

を繰り返し使用しない限り、MySQLのすべての種類の末尾と先頭の空白を削除する組み込みの方法があるとは思いませんTrim()

別の言語を使用して現在のデータをクリーンアップし、入力が今後サニタイズされていることを確認することをお勧めします。

于 2008-11-11T18:35:30.360 に答える
5

;を作成することによってのみ機能させることができましたchar

trim(both char(13) from fieldname)
于 2009-01-25T12:11:23.697 に答える
4
select trim(both '\n' from FIELDNAME) from TABLE;
于 2008-11-11T18:21:32.353 に答える
0

フィールドの1つで同じ問題に直面しました。完全な解決策はありません。私の場合、フィールドの長さが6になるはずだったのは幸運でした。だから私は次のようなクエリを使用しました

update events set eventuniqueid = substring(eventuniqueid, 1, 6) where length(eventuniqueid) = 7;

必要に応じて最適なオプションを選択するだけです。「\n」と「\r\n」の置換はうまくいかず、時間を無駄にしてしまいました。

于 2010-10-11T23:39:28.650 に答える
0

上記の答えは、組み合わせると機能します。フィールドの先頭と末尾の改行を置き換える完全な例は、次のようになります。

UPDATE table SET field=REPLACE(field, field, TRIM(BOTH '\r\n' FROM field))
于 2010-09-14T13:59:57.820 に答える
-1

REPLACE(FIELD,'\r\n',' ')MySql 5.1 データベースで完全に動作します

于 2010-01-28T15:48:39.560 に答える