select c.* from t_goodstype t, t_goodscon c where t.St_typeid = c.St_typeid and 1=1 
or t.St_name like '%日%' or c.Ste_name like '%日%' or c.Ste_content like '%日%' 
or t.St_name like '%用%' or c.Ste_name like '%用%' or c.Ste_content like '%用%' 
order by c.Ste_Id desc limit 108,4
我的语句就是类似这种的,后面的都是Stringbuffer截取字符串追加的,但是我查到的数据会重复出现,求个解决办法,谢谢了

解决方案 »

  1.   

    把两行重复的数据记录贴出以供分析。
    一般来说随便猜猜的话,应该是t_goodstype t, t_goodscon c存在了多对多的情况,而楼主没有考虑到这种情况。
      

  2.   

    select c.* 
    from t_goodstype t, t_goodscon c 
    where t.St_typeid = c.St_typeid 
    and (1=1 
    or t.St_name like '%日%' or c.Ste_name like '%日%' or c.Ste_content like '%日%' 
    or t.St_name like '%用%' or c.Ste_name like '%用%' or c.Ste_content like '%用%' 
    )
      

  3.   

    select c.* 
    from t_goodstype t, t_goodscon c 
    where t.St_typeid = c.St_typeid 
    and (
    t.St_name like '%日%' or c.Ste_name like '%日%' or c.Ste_content like '%日%' 
    or t.St_name like '%用%' or c.Ste_name like '%用%' or c.Ste_content like '%用%' 
    )
      

  4.   

    一定要保留1=1的话select c.* from t_goodstype t, t_goodscon c where t.St_typeid = c.St_typeid and 1=1 
    and ( t.St_name like '%日%' or c.Ste_name like '%日%' or c.Ste_content like '%日%' 
    or t.St_name like '%用%' or c.Ste_name like '%用%' or c.Ste_content like '%用%' )
    order by c.Ste_Id desc limit 108,4