z豪杰 2012-04-25 16:56
浏览 174
已采纳

请教一个复杂的sql问题

我有个表,里面有个字段叫content,现在有6个关键词(限行,道路,交警,设卡,指挥,拥堵),我想查content中包含其中任意两个关键词的记录。

  • 写回答

2条回答 默认 最新

  • iDeputy 2012-04-25 17:43
    关注

    抛个破砖先.
    [code="sql"]
    create table AAA(name varchar2(10), content varchar2(20))
    select a.*,a.rowid from AAA a;
    insert into AAA (NAME, CONTENT) values ('1', 'ACA');
    insert into AAA (NAME, CONTENT) values ('2', 'B');
    insert into AAA (NAME, CONTENT) values ('3', 'CA');
    insert into AAA (NAME, CONTENT) values ('4', 'CCC');
    insert into AAA (NAME, CONTENT) values ('5', 'DDD');
    insert into AAA (NAME, CONTENT) values ('6', 'CBA');

    select name, count(name)
    from (select * from AAA where content like '%A%'
    union all
    select * from AAA where content like '%B%'
    union all
    select * from AAA where content like '%C%'
    union all
    select * from AAA where content like '%D%') a
    group by NAME
    having count(name) >= 2;
    [/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?