我想从 MYSQL 的一列中删除单词的最后一个字符,并直接将两个新字符添加到同一个单词中。例如,我想将 beiðni 更改为 beiðn|i。
这是我的查询 =
UPDATE
ds_1_headword_backup1SET
词干= CONCATE((SUBSTRING(
词干,1, ,LENGTH(
词干) - 2), '|i') WHERE
gram_1_word_groupLIKE '%i' AND
gram_2_endings= 'f' AND
= 'indecl'
尝试这样的事情:
UPDATE ds_1_headword_backup1 SET stem = concat(substring(stem,1,length(stem)-1), '|i');
示例:SQLFiddle
这是完整的sql查询:
UPDATE ds_1_headword_backup1
SET stem
= CONCAT(SUBSTRING( stem
,1,CHAR_LENGTH( stem
) - 1), '|i'), gram_2_endings
= '(-i)' WHERE stem
LIKE '%i' AND gram_1_word_group
= 'f' AND gram_2_endings
= 'indecl'
区别在于使用char_length
我同意 chejnik,但没有足够的声誉来评论他的变体,所以创建另一个。
您应该使用 CHAR_LENGTH 而不是 LENGTH,因为 CHAR_LENGTH 返回符号计数,但 LENGTH -字节总和。
因此,7alhashmi 答案仅对每个字符有 1 个字节的字符串是正确的。