我有一个关键字列,它包含如下内容:
apples, oranges, pine apple
我正在尝试使用此查询将空格更改为连字符"
UPDATE articles SET keywords = REPLACE(keywords," ","-") WHERE
keywords REGEXP '[A-Z] [A-Z]' limit 1;
但这会在我不需要的地方添加连字符,如下所示:
apples,-oranges,-pine-apple
这可以用 REGEXP 来完成吗?或者我需要涉及 PHP 吗?
谢谢。
最佳答案
您正在根据正则表达式选择行,但 REPLACE()
是如何知道这一点的?它将用连字符替换空格,就像您告诉它的那样。
有一些选项可以在 MySQL 中添加基于正则表达式的搜索和替换,例如 UDF , 和 MariaDB supports it natively :
UPDATE articles SET keywords = REGEXP_REPLACE(keywords, "[A-Z] [A-Z]", "-");
另外值得一提的是,没有 ORDER BY
子句的 LIMIT
子句不是很有用。
关于mysql - 在有限的情况下使用 REGEXP 将空格更改为连字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35075198/