我在此MySQL命令上画了一个空白。我在名为scanner的表中的名为pagetitle的变量中有一组这样的字符串:
Marketing analytics via Christopher Penn
我想放弃包括通孔在内的所有东西以产生:
Marketing analytics
我这样做了:
UPDATE scanner SET pagetitle = SELECT TRIM(TRAILING ' via ' FROM pagetitle) FROM scanner
根据手册,这应该可以满足我的要求,但仍然可以产生原始字符串。
我在做什么错了?
答案 0 :(得分:2)
带有TRAILING
的{{1}}选项是指结尾字符,而不是整个以某个单词开头的单词。在此处尝试使用TRIM
:
INSTR
如果您使用的是MySQL 8+或更高版本,那么我们可以尝试使用UPDATE scanner
SET pagetitle = LEFT(pagetitle, INSTR(pagetitle, 'via') - 2);
WHERE pagetitle REGEXP '[[:<:]]via[[:>:]]';
:
REGEXP_REPLACE