2

我想从 MYSQL 的一列中删除单词的最后一个字符,并直接将两个新字符添加到同一个单词中。例如,我想将 beiðni 更改为 beiðn|i。

这是我的查询 = UPDATEds_1_headword_backup1SET词干= CONCATE((SUBSTRING(词干,1, ,LENGTH(词干) - 2), '|i') WHEREgram_1_word_group LIKE '%i' ANDgram_2_endings= 'f' AND= 'indecl'

4

3 回答 3

4

尝试这样的事情:

UPDATE ds_1_headword_backup1 SET stem = concat(substring(stem,1,length(stem)-1), '|i');

示例:SQLFiddle

于 2013-07-03T10:06:53.140 回答
1

这是完整的sql查询:

UPDATE ds_1_headword_backup1SET stem= CONCAT(SUBSTRING( stem,1,CHAR_LENGTH( stem) - 1), '|i'), gram_2_endings= '(-i)' WHERE stemLIKE '%i' AND gram_1_word_group= 'f' AND gram_2_endings= 'indecl'

区别在于使用char_length

于 2013-07-03T10:44:07.787 回答
1

我同意 chejnik,但没有足够的声誉来评论他的变体,所以创建另一个。

您应该使用 CHAR_LENGTH 而不是 LENGTH,因为 CHAR_LENGTH 返回符号计数,但 LENGTH -字节总和

SQLFiddle

因此,7alhashmi 答案仅对每个字符有 1 个字节的字符串是正确的。

于 2014-10-08T05:23:05.123 回答