Php 有时存在值的类似Mysql的通配符

Php 有时存在值的类似Mysql的通配符,php,mysql,Php,Mysql,标题可能有点混乱,但我可以在这里澄清 我试图使用mysql来匹配一个值,这个值有时被一个:包围,有时可能在一边,有时两者都不在。我知道通配符%,但它会选择所有字符,所以我找到了u,它会工作,但它总是选择单个字符,我只想选择该字符,如果它是:否则不会 还困惑吗?这里有一个例子 假设我在表“que”中得到一个名为“name”的列,在列“name”中我得到一个值“sdfgsdfg:jimmy:asfds”我想选择“:jimmy:”,但如果该值是“sdfgsdfg:jimmy”,我只想选择“:jimmy

标题可能有点混乱,但我可以在这里澄清

我试图使用mysql来匹配一个值,这个值有时被一个:包围,有时可能在一边,有时两者都不在。我知道通配符%,但它会选择所有字符,所以我找到了u,它会工作,但它总是选择单个字符,我只想选择该字符,如果它是:否则不会

还困惑吗?这里有一个例子

假设我在表“que”中得到一个名为“name”的列,在列“name”中我得到一个值“sdfgsdfg:jimmy:asfds”我想选择“:jimmy:”,但如果该值是“sdfgsdfg:jimmy”,我只想选择“:jimmy”

另一个例子

要用正则表达式来完成这一点,它应该是这样的:?吉米:?如果有帮助的话

目的是什么

我想从该值中删除jimmy,并将其替换为: 我正在尝试将多个姓名存储到一列中,需要删除这一个人

到目前为止,我得到了类似的信息:

 UPDATE `que` SET `name`= CASE WHEN `name` LIKE '%jimmy%' THEN replace(`name`, '%jimmy%', ':') ELSE `name` end WHERE 1
要用正则表达式来完成这一点,它应该是这样的:?吉米:?如果有帮助的话

那么使用什么呢

我正在尝试将多个姓名存储到一列中,需要删除这一个人

不要那样做。使用RDBMS的关系功能和模式:

创建表QUEU名称 que_id BIGINT无符号非空, 名称VARCHAR255不为空, 外键que_id引用que_id ; 插入到que_名称中 你的身份证,姓名 价值观 1“鲍勃”, 1“弗雷德”, 1“詹姆斯”, 2“迈克尔”, 2“吉米”, 2,“弗雷德” -等等。 ; 改变表的列名称; 然后,您将使用以下命令删除所有jimmy:

从que_名称中删除,其中名称='jimmy'; 如果需要,您可以按如下方式检索现有表:

选择que.*,GROUP_CONCATque_names.name分隔符“:”作为名称 从que LEFT使用que_id连接que_名称 按que_id分组
好的,谢谢。我只是将每个值设置为它自己的行。