如果包含特定关键字,我想从字符串中删除最后三个字符。 这对我有用,但是当我有其他语言而不是英语时,如俄语或西班牙语,那么我的查询不起作用。这是我的疑问:
SELECT case when 'Época Cosméticos_T2' like '%\_T_'
then substring(trim('Época Cosméticos_T2'),1,length(trim('Época Cosméticos_T2'))-3)
else 'Época Cosméticos_T2' end test
结果:
Época Cosméticos_T
如果我删除字符É
和é
,则查询将有效。如何使我的查询也适用于这些字符。
答案 0 :(得分:0)
使用CHAR_LENGTH()
功能代替LENGTH()
功能。
LENGTH()
函数报告字节长度而不是字符。
CHAR_LENGTH()
报告字符长度; SUBSTRING()
函数也可以对字符进行操作。
如果字符串中的所有字符都是单个字节,则LENGTH()和CHAR_LENGTH()返回相同的值。多字节字符的差异很明显:
SELECT CHAR_LENGTH('Época Cosméticos_T2') AS _char_length
, LENGTH('Época Cosméticos_T2') AS _length
_char_length _length
------------ -------
19 21