A,B两个表 都哟keyboard字段我想取出A,B两表中所有匹配'%abc%'的字段,排序用最匹配的方法排序,谢谢,菜鸟

解决方案 »

  1.   

    我不回写啊,朋友
    据个例子
    A表keyboard
    bbc
    bdd
    B表
    keyboard
    atr
    bcc批评'b'子串
    查询结果应该是这样
    bbc
    bcc
    bdd
    (如果可以实现,那么后面的子串也应该实现从小到大的匹配)谢谢
      

  2.   

    问题说明越详细,回答也会越准确!参见如何提问。(提问的智慧)select *
    from A
    where column like '%b%'
    union all
    select *
    from B
    where column like '%b%'
      

  3.   

    TRY:
    假设 F1中的内容为keyboard 
    SELECT *
     FOM (
    SELECT * FOM A
    UNION ALL
    SELECT * FOM B) A
    where LENgth(F1)-length(replace(f1,'b',''))>0
    order by LENgth(F1)-length(replace(f1,'b','')) desc,replace(f1,'b','')
      

  4.   


    select * 
    from ( 
    select * from A where column like '%b%'
    union all 
    select * from B where column like '%b%'
    ) t
    order by LENGTH(column)-LENGTH(replace(column,'b','')) desc
      

  5.   

    select title from ( 
        select title from {$dbtbpre}ecms_all where title like '%{$keyboard}%'
        union all 
        select title from {$dbtbpre}ecms_mtv where title like '%{$keyboard}%'
    ) t
    order by LENGTH(title)-LENGTH(replace(title,'{$keyboard}','')) desc可是提示我
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version
     for the right syntax to use near 'Resource id #12' at line 1<br>Resource id #12请问这个是什么错误
      

  6.   

    如果是PHP,则最好把代码贴全。对这个SQL语句用调试手段看一下内容,然后直接到mysql运行以判断你的SQL语句语法问题在哪一部分。