如何将字符串添加到MYSQL数据库中,并使用php删除其中字符串的最后一个字符


How to add string to MYSQL database, and deleting last character of string in it using php?

我想将字符串,'2')添加到数据库中的一行中。数据库中的当前字符串如下所示:('1','42','2122','3')如果我正常添加它,结果就是:('1','42','2122','3'),'2')。我如何删除字符串的最后一个字符,它已经在数据库中了,所以它会像这样结束:('1','42','2122','3','2')我尝试使用concat和(子)str_replace,但没有得到预期的结果。

这是否可能只使用SQL,而不首先获取记录并更新它?

好吧,你可以使用mysql 的replace功能

这个函数与编辑器中的"查找替换"对话框非常相似。这将用"String_Expression"中的"replace_String"替换所有出现的"FIND_String"

示例-Select REPLACE ('Vipin', 'i', 'X')
输出-VXpXn
语法:Replace ( 'String_Expression', 'FIND_String', 'REPLACE_String' )

文档:http://www.electrictoolbox.com/mysql-select-replace/

在您的情况下,如果只有一个右括号,则可以使用以下查询更新您的表。。

PHP代码

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

请记住,这将替换')'$newString的每个实例,因此只有当最后只有一个右括号时,此解决方案才能工作。

$result = rtrim($string, ')');

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

$rest = substr("abcdef", 0, -1);  // returns "abcde"

然后使用"。"添加其余部分。

$oldtuple = "('1','42','2122','3')";
$newvalue = ",'2')";
$newtuple = substr($oldtuple, 0, strlen($oldtuple)-1).$newvalue;

现在,如果您键入
echo $newtuple;
您应该看到以下输出:
('1','42','2122','3','2')

如果我没有误解你。。。

$str = "('1','42','2122','3'),'2')";
$new_str = str_replace( ')' , '' , $str) . ')';
// $new_str -- ('1','42','2122','3','2')

我不知道MySQL是否也能做到这一点,但在PHP中我会做这样的事情":

$string = //get your string from database
$stringtoadd = ",'2')";

$string = substr_replace($string ,"",-1);
    $newstring = $string.$stringtoadd;
//put $newstring in database

substra_replace将最后一个字符替换为"(无)。

这是您的查询

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