删除保存在MySQL字段中的字符串的一部分

时间:2019-03-04 12:10:42

标签: php mysql

我已经完成了有关该主题的研究,并考虑过使用replace,但是麻烦的是,如果不进行任何替换,那么我的数据库字段中将会有很多空格,这将变得非常混乱。所以我来找你们寻求帮助。

我的数据库中有一个名为EQUIPMENT的字段。这是这些字段之一中的示例

15 <> 5 <> 6 <> 3 <> 2 <> 1 <> 14 <> 13 <> 12

每个数字代表一件设备的ID。我要如何删除例如<> 6  就像我说的那样,我考虑使用replace,但是用''替换会在字段中留下空格。

3 个答案:

答案 0 :(得分:0)

用''代替(无空格)不应留空格。如果您不需要任何空格,也可以使用trim。

答案 1 :(得分:0)

我不确定这是否是您想要的,但是在插入值之前,只需使用:

echo str_replace("<>", "", "15<>5<>6<>3<>2<>1<>14<>13<>12");

输出:1556321141312

要删除<>6,请使用echo str_replace("<>6", "", "15<>5<>6<>3<>2<>1<>14<>13<>12");

结果:15<>5<>3<>2<>1<>14<>13<>12

如果要在mysql数据库上执行此操作,则可以帮助您:https://stackoverflow.com/a/14586441/5459942

答案 2 :(得分:0)

除了用空字符串代替“ <>数字”,还可以用“ <>”代替“ <>数字<>”。
这是为了避免其他数字(包含该数字)也被部分替换。

为避免数字在字符串的开头或结尾时出现错误结果,请在两端均添加一个“ <>”。

然后可以在替换后修剪两端的'<>'。

示例:

select 
 EQUIPMENT,
 TRIM(BOTH '<>' FROM REPLACE(CONCAT('<>',EQUIPMENT,'<>'),CONCAT('<>',6,'<>'),'<>')) as Equipment_without_6
from
(
 select '15<>5<>6<>3<>2<>1<>14<>13<>12' as EQUIPMENT
 union all select '6<>16<>6<>60<>6'
) q 

返回:

EQUIPMENT                      Equipment_without_6
------------------------------ ---------------------------
15<>5<>6<>3<>2<>1<>14<>13<>12  15<>5<>3<>2<>1<>14<>13<>12
6<>16<>6<>60<>6                16<>60