整数(ID)をテキスト文字列にマップしますか? 質問する

整数(ID)をテキスト文字列にマップしますか? 質問する

私のデータベースでは、「type」というフィールドを tinyInt として保存していますが、それほど多くの型がないため、これらすべての型に対応する名前を保存するためのテーブルは作成しないことにしました。

テーブルをクエリするときに、タイプを PHP 配列に格納している対応する名前に置き換えたいのですが、結果をループして返された結果行を置き換えるのではなく、SQL ステートメント自体の中でこの置き換えを行う方法があるかどうか疑問に思っています。

このようなものが存在するのでしょうか:

select *, map(type, {1=>'abc', 2 => 'xyz'}) from orders

ベストアンサー1

これを実現する唯一の方法は(私はかなり確信しているが)CASE .. WHEN ...構築:

SELECT *, CASE type WHEN 1 THEN 'abc' WHEN 2 THEN 'xyz' END as stringType
FROM orders

ELSE句を使用してデフォルトを指定することもできます(例: ) CASE type WHEN 1 THEN 'abc' WHEN 2 THEN 'xyz' ELSE 'unknown' END

おすすめ記事