2

MYSQL の 1 つの列から単語の最後の文字を削除し、同じ単語に 2 つの新しい文字を直接追加したいと思います。たとえば、beiðni を beiðn|i に変更したいと思います。

これが私のクエリです = UPDATEds_1_headword_backup1SETステム= CONCATE((SUBSTRING(ステム,1, ,LENGTH(ステム) - 2), '|i') WHEREステム LIKE '%i' ANDgram_1_word_group = 'f' ANDgram_2_endings= 'indecl'

4

3 に答える 3

4

次のようなことを試してください:

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

例: SQLフィドル

于 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 -バイトの合計を返すため、LENGTH の代わりに CHAR_LENGTH を使用する必要があります。

SQLフィドル

したがって、7alhashmi の回答は、1 文字あたり 1 バイトの文字列に対してのみ正しいです。

于 2014-10-08T05:23:05.123 に答える