3

データベースの行に文字列を追加したいと考えて,'2')います。データベース内の現在の文字列は次のようになります。('1','42','2122','3') 通常どおり追加すると、結果は次のようになります('1','42','2122','3'),'2')。すでにデータベースにある文字列の最後の文字を削除するにはどうすればよいので、次のようになります。and (sub)('1','42','2122','3','2') を使用してみましたが、望ましい結果が得られませんでした。concatstr_replace

最初にレコードをフェッチして更新せずに、SQL のみを使用してこれを行うことは可能ですか?

4

7 に答える 7

5

さて、あなたはmysqlのreplace関数を使うことができます

この関数は、エディタにある[検索-置換]ダイアログボックスとほとんど同じです。これにより、「String_Expression」で出現するすべての「FIND_String」が「REPLACE_String」に置き換えられます。

-Select REPLACE ('Vipin', 'i', 'X')
出力-VXpXn
構文: Replace ( 'String_Expression', 'FIND_String', 'REPLACE_String' )

ドキュメント:http ://www.electrictoolbox.com/mysql-select-replace/

あなたの場合、閉じ括弧が1つしかない場合は、次のクエリを使用してテーブルを更新できます。

PHPコード

$newString = ",'2')";

$sql = "UPDATE <tableName> SET <fieldName> = replace(<fieldName>, ')', ". $newString .")";

これによりtoのすべてのインスタンスが置き換え')'られる$newStringため、このソリューションは、最後に閉じ括弧が1つしかない場合にのみ機能することに注意してください。

于 2012-08-04T10:25:19.620 に答える
4
$result = rtrim($string, ')');

http://php.net/manual/pl/function.rtrim.php

于 2012-08-04T10:00:26.633 に答える
2
$oldtuple = "('1','42','2122','3')";
$newvalue = ",'2')";
$newtuple = substr($oldtuple, 0, strlen($oldtuple)-1).$newvalue;

ここで入力
echo $newtuple;
すると、次の出力が表示されます。
('1','42','2122','3','2')

于 2012-08-04T10:17:56.537 に答える
1

それがあなたの質問です

UPDATE TABLE_NAME set FIELD_NAME = REPLACE(FIELD_NAME, ')', ',YOUR_NUMBER_HERE)')

于 2012-08-04T10:34:59.953 に答える