标题可能有点混乱,但我可以在这里澄清一下。
我正在尝试使用 mysql 的 LIKE 来匹配有时被 : 包围的值,或者有时它可以在一侧,或者有时两者都没有。我知道通配符 % 但这会选择所有内容,所以我发现 _ 可以工作,但它总是选择那个单个字符,我只想选择那个字符,如果它是一个 : 否则不是。
还在迷茫吗?这是一个例子。
假设我在“que”表中有一个名为“name”的列,在“name”列中我得到了一个值“sdfgsdfgsdfg:jimmy:asfds”我想选择“:jimmy:”但如果值是“ sdfgsdfgsdfg:jimmy' 我只想选择 ':jimmy'。
另一个例子。
要使用正则表达式来完成这一点,如果有帮助的话,它会像这样 (:?)jimmy(:?) 。
目的是什么?
我想从该值中删除 jimmy 并将其替换为: 我正在尝试将多个名称存储到一列中,并且需要删除那个人。
到目前为止,我得到了这样的东西:
UPDATE `que` SET `name`= CASE WHEN `name` LIKE '%jimmy%' THEN replace(`name`, '%jimmy%', ':') ELSE `name` end WHERE 1