我已经完成了有关该主题的研究,并考虑过使用replace,但是麻烦的是,如果不进行任何替换,那么我的数据库字段中将会有很多空格,这将变得非常混乱。所以我来找你们寻求帮助。
我的数据库中有一个名为EQUIPMENT的字段。这是这些字段之一中的示例
15 <> 5 <> 6 <> 3 <> 2 <> 1 <> 14 <> 13 <> 12
每个数字代表一件设备的ID。我要如何删除例如<> 6 就像我说的那样,我考虑使用replace,但是用''替换会在字段中留下空格。
答案 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