mysql,select query和or clause问题

时间:2010-06-22 10:07:29

标签: mysql

我有一个名为item的表,其中包含四个属性名称,代码,类,值

现在我想按照以下方式对它们进行分组:

group a: name='A',code=11,class='high',value between( (5300 and 5310),(7100 and 7200),(8210 and 8290))
group b: name='b',code=11,class='high',value between( (1300 and 1310),(2100 and 2200),(3210 and 3290))

我该怎么做?

2 个答案:

答案 0 :(得分:2)

你可能想尝试这样的事情:

SELECT
    CASE
        WHEN code = 11 AND
             class = 'high' AND
            (code BETWEEN 5300 AND 5310 OR
             code BETWEEN 7100 AND 7200 OR
             code BETWEEN 8210 AND 8290)
        THEN 'A'
        WHEN code = 11 AND
             class = 'high' AND
            (code BETWEEN 1300 AND 1310 OR
             code BETWEEN 2100 AND 2200 OR
             code BETWEEN 3210 AND 3290)
        THEN 'B'
        ELSE Unknown
    END AS name,
    *
FROM your_table
ORDER BY name

您可能希望将ORDER BY更改为GROUP BY,您应该知道BETWEEN包含两个端点。

答案 1 :(得分:1)

第一组

 select * from item
 where name LIKE 'A'
 and code LIKE '11'
 and class LIKE 'high'
 and (value BETWEEN 5300 AND 5310 OR value BETWEEN 7100 AND 7200 OR value BETWEEN 8210 AND 8290)

b组的想法相同