我有一个关键字列,它包含这样的内容:
苹果,橘子,松苹果
我正在尝试使用此查询“
将空格更改为连字符UPDATE articles SET keywords = REPLACE(keywords," ","-") WHERE
keywords REGEXP '[A-Z] [A-Z]' limit 1;
但是这会添加连字符,我不想要它们,就像这样:
苹果,-oranges,-pine-苹果
这可以用REGEXP完成吗?或者我需要涉及PHP吗?
谢谢。
答案 0 :(得分:1)
您正在根据正则表达式选择行,但REPLACE()
如何知道?它将用连字符替换空格,就像你告诉它的那样。
在MySQL中添加基于regexp的搜索和替换有一些选项,例如UDF和MariaDB supports it natively:
UPDATE articles SET keywords = REGEXP_REPLACE(keywords, "[A-Z] [A-Z]", "-");
另外值得一提的是,没有LIMIT
子句的ORDER BY
子句不是很有帮助。