0

簡単な質問です

MySQL では、数値を同等の文字列として表示するにはどうすればよいですか?

そう

1 = New
2 = Old
3 = Cancelled

だから私が何かを持っていたら

SELECT object_name, object_status where object_status > 0

そしてこれが戻ってきました

object#1, 1
object#2, 2
object#3, 1
object#4, 3

でも表示させたかった

object#1, New
object#2, Old
object#3, New
object#4, Cancelled

よろしくお願いします。

4

3 に答える 3

4

あなたはCASEこれで使うことができます、

SELECT object_name,         
        CASE object_status 
            WHEN 1 THEN 'New'
            WHEN 2 THEN 'Old'
            WHEN 3 THEN 'Cancelled'
            ELSE NULL
        END status
where object_status > 0

また

SELECT object_name,         
        CASE 
            WHEN object_status = 1 THEN 'New'
            WHEN object_status = 2 THEN 'Old'
            WHEN object_status = 3 THEN 'Cancelled'
            ELSE NULL
        END status
where object_status > 0
于 2013-02-08T15:38:01.147 に答える
2

新しいマッピングテーブルを作成し、2つのテーブルを結合することができます。新しいテーブルには2つの列があります-の列object_statusと素敵な名前の列です。次に、2つに参加します。

SELECT s.object_name, sm.StatusName
FROM Status s
INNER JOIN StatusMapping sm on s.object_status = sm.object_status
WHERE s.object_status > 0

これにより、クエリを変更せずに、必要に応じて新しいマッピングを追加できます。

于 2013-02-08T15:41:13.760 に答える
2
SELECT object_name, 
 case object_status when 1 then 'New' 
  when 2 then 'Old' 
  when 3 then 'Cancelled' end as status
from myTable
where object_status > 0
于 2013-02-08T15:38:43.640 に答える