比如说:
-------------------------------------------
abcdefg       ==>        abc
一二三四五    ==>        一二三
ab一二三      ==>        ab一
-------------------------------------------使用mysql,如何做到?  谢谢!!

解决方案 »

  1.   

    set @str='ab一二三';select left(@str,3);
      

  2.   

    那得看什么编码了
    西文编码:
    substirng("str",1,3)
    多字节编码:
    select substring('abc',1,6);
      

  3.   

    既然能中英文混合,那就是GB2312了。
    那就直接可以left(@str,3)了
    set names gb2312;
    set @str1 = 'a一二三';
    set @str2 = '四五a一二三';
    select left(@str1,3),left(@str2,3);
    query result(1 records)
    left(@str1,3) left(@str2,3) 
    a一二 四五a 
      

  4.   

    yueliangdao0608
    如下查询怎么样才能得到3?
    select length('中国C')
      

  5.   

    如果你不嫌弃的话,这样就可以了select ceil(length('中国C')/2);
      

  6.   

    错了,错了,如果有许多中文和英文混合就不对了。
    4.1后正确的方法:SELECT CHAR_LENGTH(_gbk'中国CC' COLLATE gbk_bin);
    把字符集和校对写进去就不会出问题。
      

  7.   

    同理,按照楼主的需求,要不出错的话,应该这么写:SET NAMES 'gbk';SET CHARACTER SET 'gbk';SELECT left( _gbk 'ab一二三' COLLATE gbk_bin, 3 ) ;
      

  8.   

    抱歉,最近忙的没空来看。
    谢谢sunnyfun888() !
      

  9.   

    该字段LEFT(XXX,6) 然后用程序判断ASCII编码然后得出争取的结果。呵呵。笨了些。。