Php 有时存在值的类似Mysql的通配符
标题可能有点混乱,但我可以在这里澄清 我试图使用mysql来匹配一个值,这个值有时被一个:包围,有时可能在一边,有时两者都不在。我知道通配符%,但它会选择所有字符,所以我找到了u,它会工作,但它总是选择单个字符,我只想选择该字符,如果它是:否则不会 还困惑吗?这里有一个例子 假设我在表“que”中得到一个名为“name”的列,在列“name”中我得到一个值“sdfgsdfg:jimmy:asfds”我想选择“:jimmy:”,但如果该值是“sdfgsdfg:jimmy”,我只想选择“:jimmy” 另一个例子 要用正则表达式来完成这一点,它应该是这样的:?吉米:?如果有帮助的话 目的是什么 我想从该值中删除jimmy,并将其替换为: 我正在尝试将多个姓名存储到一列中,需要删除这一个人 到目前为止,我得到了类似的信息:Php 有时存在值的类似Mysql的通配符,php,mysql,Php,Mysql,标题可能有点混乱,但我可以在这里澄清 我试图使用mysql来匹配一个值,这个值有时被一个:包围,有时可能在一边,有时两者都不在。我知道通配符%,但它会选择所有字符,所以我找到了u,它会工作,但它总是选择单个字符,我只想选择该字符,如果它是:否则不会 还困惑吗?这里有一个例子 假设我在表“que”中得到一个名为“name”的列,在列“name”中我得到一个值“sdfgsdfg:jimmy:asfds”我想选择“:jimmy:”,但如果该值是“sdfgsdfg: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分组
好的,谢谢。我只是将每个值设置为它自己的行。