在记录中插入字符串…php…mysql
我的主管给了我一个关于PHP和SQL的作业,我试图解决它,但都没有用。如何通过在指定字段中添加字符串来更新表中的记录?例如,如果列/字段中的记录为“P000M000D000”。如何在不替换整个字符串的情况下,在“M”或“D”之前添加“0”。更新查询将用添加的字符串替换该列中的整个记录,我不希望这样 有人知道我需要使用的字符串函数吗在记录中插入字符串…php…mysql,php,mysql,string,function,insert,Php,Mysql,String,Function,Insert,我的主管给了我一个关于PHP和SQL的作业,我试图解决它,但都没有用。如何通过在指定字段中添加字符串来更新表中的记录?例如,如果列/字段中的记录为“P000M000D000”。如何在不替换整个字符串的情况下,在“M”或“D”之前添加“0”。更新查询将用添加的字符串替换该列中的整个记录,我不希望这样 有人知道我需要使用的字符串函数吗 开尔文使用replace功能,在该功能中,您可以在列中指定搜索字符串和替换字符串。确保使用where子句进行约束 update tablename set colna
开尔文使用
replace
功能,在该功能中,您可以在列中指定搜索字符串和替换字符串。确保使用where
子句进行约束
update tablename set colname = replace(colname,searchstring,replacestring) where something=something
replace
在中有说明。由于您是初学者,我建议您分三步进行:
1。从要更新的表中检索字段。
2。使用PHP字符串函数以任何方式修改值。
3。使用简单的更新查询。
MySQL有很多漂亮的字符串函数: 我将使用的方法是使用
M
和D
作为分隔符,并在使用子字符串索引前后提取零件。请注意,
substring\u index
区分大小写
SET @sampledata = 'P111M2222D3333';
UPDATE table1
SET col1
= CONCAT(substring_index(@sampledata, 'M', 1), '0M' /*P1110M*/
,substring_index(substring_index(@sampledata, 'D', 1), 'M',-1) /*222*/
,'0D' ,substring_index(@sampledata, 'D',-1)) /*0D333*/
WHERE col2 = 1234;
嘿,杰夫,谢谢你的回复。你能解释一下吗。我对这些语言有点陌生。所以我要用什么来替换“searchstring”、“replacestring”和“something”?(见我上面的例子)@kelvin您打算如何在不使用更新查询的情况下更新表中的记录?@Jordan,这就是我为什么在这里问的原因,因为我不知道,我的老板也知道我不知道well@Kelvin啊,对不起,我得出了错误的结论。这需要ping数据库服务器两次,这对性能不是一件好事。
$fname = preg_split("/[\s]+/", $name); //splits on any number of space chars
$query = "update contact set name='$fname' where uid=123";
$result = mysql_query($query);
SET @sampledata = 'P111M2222D3333';
UPDATE table1
SET col1
= CONCAT(substring_index(@sampledata, 'M', 1), '0M' /*P1110M*/
,substring_index(substring_index(@sampledata, 'D', 1), 'M',-1) /*222*/
,'0D' ,substring_index(@sampledata, 'D',-1)) /*0D333*/
WHERE col2 = 1234;