如果字符串包含特定的关键字,我想从字符串中删除最后三个字符。这是为我工作,但当我有英语以外的其他语言,如俄语或西班牙语,那么我的查询不起作用。以下是我的疑问:
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如果我删除了字符É和é,那么查询就可以工作了。如何使我的查询与这些字符一起工作。
发布于 2014-04-03 16:34:15
使用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 21https://stackoverflow.com/questions/22843585
复制相似问题