开发者

Change results in mysql query

I would like to manipulate the result I get from a query.

I have a set of 2.5m rows and there are 10 different ID's for a status. These statusses are not ma开发者_开发百科pped in another table but I would like to manipulate the result I get in SQLyog.

What I would like to do is:

Count(Id) | Status
------------------
500.000   | 1
750.000   | 2

convert into a result

Count(Id) | Status
-------------------
500.000   | Initial order
750.000   | Cancelled

Can this be done in the query? Note that I'm not using PHP or a browser to display the results.


select 
      count(*) as TotalRecs,
      case status
         when 1 then "Initial Order"
         when 2 then "Cancelled    "
         when 3 then "whatever     "
         else        "all others   "
      end case as WordStatus
   from
      YourTable
   group by 
      2


You can either inline it in a case statement

select COUNT(id), 
    case status
    when 1 then 'initial order'
    when 2 then 'cancelled'
    # without an else, the rest go to NULL
    end status
from tbl
group by status    # yes, just on status

Or I would strongly encourage you to create a reference table for this

Tbl Status contains 2 columns ID and Description

select COUNT(tbl.id), status.description
from tbl
LEFT join status on status.id = tbl.status
group by status.description
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜