特にMySqlで、nullであるすべての戻り値のデフォルト値を設定する方法はありますか?
それ以外の
SELECT
IFNULL(foo, 0),
IFNULL(bar, 0),
IFNULL(baz, 0)
FROM table
私は次のようなことをしたいと思います:
SELECT IFNULL(*, 0)
FROM table
// this does not work, but I'm looking for something like it
SQL の関数の結果は、列のリストではなく、単一の値 (列) です。したがって、そのような構造は存在しませんし、存在することもできません。残念ながら、すべての列を個別に処理する必要があります。
保持することを気にしない場合は、テーブルにデフォルト値を追加できますNULL
。
ALTER TABLE yourTable ALTER foo SET DEFAULT 0;
また、各ステートメントを 1 回書き出すビューを作成し、IFNULL()
それを使用して常に再入力する手間を省くこともできます。
しかし、他の人が指摘したように、あなたが望んでいたように単純にそれを行うための構造はありません.
テーブル メタデータを使用して、次のような反復的な作業をすばやく行うこともできます。
SELECT CONCAT("IFNULL(",`COLUMN_NAME`,",0)")
FROM `INFORMATION_SCHEMA`.`COLUMNS`
WHERE `TABLE_SCHEMA`='yourdatabasename'
AND `TABLE_NAME`='yourtablename';
You can try case statement for sql as below
select
CASE
WHEN foo is null THEN 0 else foo end
from urtable
and then same for other columns