3

そのため、MySQL に保存する 625 桁の長い数字があり、0、1、2 桁のみが含まれています。これまでに見つけた最良の保存方法は、VARCHAR(625) です。それを行うためのより良い方法があると思いますが、方法がわかりません。

「テキストの128番目の文字を1に変更する」などのクエリをPHPにクエリを実行せずに実行し、そこから変更して、新しいテキストをDBに書き込みたいです。

問題は、これを行う最も簡単な方法と、この種のものに最適なフィールド タイプは何かということです。

前もって感謝します。

4

4 に答える 4

3

「テキストの 128 番目の文字を 1 に変更する」などのことを行う場合は、データ型を VARCHAR(625) のままにしておくことをお勧めします。長さが常に625 になる場合は、CHAR を使用できます。

これにより、MySQL で 128 番目の文字が 1 に変更されます。

UPDATE your_table set your_column =
  CONCAT(SUBSTRING(your_column, 1, 127), '1', SUBSTRING(your_column, 129))
于 2013-03-23T17:48:52.517 に答える
2

INSERT()文字列関数を使用できます

試してみる

UPDATE tbl set field = INSERT(field,128,1,'1') where id = primary key
于 2013-03-23T17:50:34.350 に答える
1

数値だけを格納する場合は、varchar の代わりに int(625) を使用してみませんか?

置換コマンドを使用できますが、何を置換するかを知る必要があります

update TABLE_NAME set FIELD_NAME = replace(FIELD_NAME, ‘find this string’, ‘replace found string with this string’);

正確に何を置き換えているのかわからない場合は、「見つかった文字列をこの文字列に置き換える」をサブクエリに置き換えることができます。length と substr を使用して分割し、必要なものを置き換えて、連結して元に戻します。

この例は、私が言っていることをより意味のあるものにするはずです http://sqlfiddle.com/#!2/dbc21/2/0quey

于 2013-03-23T17:49:25.603 に答える