比如:
 表A 
字段a        
黑JA205 
红HB120
 表B
字段b
JA205
HB120请问如何让字段a=字段b ,我是想用函数把字段a中的汉字过滤掉,这样查询条件a=b就成立了。
请高手指教。

解决方案 »

  1.   

    看起来像是车牌号码,A.a字段的数据格式是固定的吧(1个汉字+5个ASCII字符)?
    SELECT A.a FROM A, B WHERE RIGHT(A.a, 5) = B.b
      

  2.   

    写一个函数,里面一个FOR循环,将相应的字符转换为ASCII码,判断是中文就跳过,然后返回字符串!
    不知道有没有其它函数可以过滤
      

  3.   

    能保证是单个汉字开头吗?这样试试:
    SELECT A.a FROM A, B WHERE SUBSTRING(A.a FROM 2) = B.b
      

  4.   

      字段a有如下形式的记录: 
       蓝JV255    
       S3250    
       OLD    
       钢T305    
       金T305    
       金T205    
       金JV255    
       金JV205    
       红Z909 
      

  5.   

    可不可以把 字段a 用explode爆破, 首字母 用正则,只允许 0-9a-zA-Z 进行 匹配。
      

  6.   

    考虑到你的A.a字段只可能有一个前导的中文字
    SELECT a FROM A, B WHERE (ORD(a)>127 AND SUBSTRING(a,2)=b) OR a=b
    也可写作
    select t.* from ( select if(ord(a)>127, substring(a, 2), a) as a FROM A) t, B where a=b
      

  7.   

    我是写成
    select * from a,b where a.a=b.b or substring(a.a,2)=b.b 好像可以的样子
      

  8.   

    新问题
    select * from a left join b on a.m!=b.m or a.sl!=sum(b.xl) group by b.m请问上句该如何写,显示两表m不相等的,和显示a数量sl不等于b销量的和