質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Q&A

解決済

2回答

1082閲覧

画面に表示されている「null」を「未経験」に表示を変えたい

Kohinata

総合スコア30

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

1グッド

0クリップ

投稿2023/03/15 01:36

編集2023/03/15 01:38

実現したいこと

画面に表示されている「null」を「-」に表示を変えたい

前提

Javaでサッカーチームのユーザー管理アプリを作成しています。
検索結果、経験がある無しをDBで「経験者」「null」で管理をしています。
現在、「null」だと画面上にnullと表示されてしまうのでそれをどうにかしたいと思っています。
画面上で消すのではなく、「null」を「未経験」に変えて表示したいと考えています。

発生している問題・エラーメッセージ

| ID  | ポジション | 経験 | | Aさん | GK | 経験者 | | Bさん | FW | null |

該当のソースコード

ソースコード

試したこと

nullを置き換えることができるということは、どこかで知った知識なのですが、検索の仕方が悪いため、望んでいるものに辿り着けませんでした。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

TA9TO👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jimbe

2023/03/15 02:51

何故、経験列を(1と0でも無く、有・無でも無く)経験者と(未経験でも無く)null にしたのでしょうか。 表示に使うつもりなら、未経験を入れるべきでしょう。 表示に使わないつもりなら、データベースの機能、SQLの機能、 java の機能の何れかで何とかすることになりますが、そのどれも何をどう使っているのかの情報がありません。
guest

回答2

0

ベストアンサー

MySQLのテーブルに保存したデータに対してSQLを実行しているという状況ということでしょうか?
選手情報をid,position,experienceと3つのカラムを持つplayersテーブルに格納しているものと空気を読んで回答すると、IFNULLという関数が使えます。

sql

1SELECT id, position, IFNULL(experience, '未経験') as experience FROM players"

投稿2023/03/15 02:16

ta99to

総合スコア79

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Kohinata

2023/03/15 06:11

説明が足りていなかったのにも関わらず、回答していただきありがとうございます! 試して見たところ、希望通りの挙動が行えました!
guest

0

DBの値を書き換えたりSQLで取得するときに何とかするのではなく、アプリケーション側の画面出力・表示のプログラムで条件式によって表示をかえるべきと思います。
今回なら 
nullの場合→未経験
それ以外→DB値

なぜそうするかというと、仮に「未経験」から別のラベルに変えたいとなった場合にDBの値だったりSQLを修正する必要がありますが、
画面出力プログラムを変更した方が幾分かメンテナンス性が高くなります。
あくまで「表示」に使うものであるのなら、「表示」の箇所に書くべきという点ですね。

あと、現状のテーブル定義が不明ですが、ポジションや経験もラベルとしては別テーブルに持っておいて、ユーザテーブルには各番号のみを入れておいた方が良いでしょうね。
検索のときに文字列より数値の方がパフォーマンスが良くなりますから。

投稿2023/03/15 02:16

編集2023/03/15 02:21
m.ts10806

総合スコア80863

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2023/03/15 02:29

>なぜそうするかというと、仮に「未経験」から別のラベルに変えたいとなった場合にDBの値だったりSQLを修正する必要がありますが、 と書いたものの、設定ファイルに外出しするなら、それでもいいかなとは思います。 検索時には注意。
Kohinata

2023/03/15 06:17

回答ありがとうございます! 調べ方もわからなかったので、詳しく書いていただきありがたいです! 確かに、今後の管理のことを踏まえると、別テーブルを作成した方がいいかもしれません。 参考にしてみます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問