2017-05-30 6 views
5

カラム値がヌルではなく、カラム値がデフォルト値と等しくないレコードをフェッチしたい。 私たちはテーブルにカラム値がNULLかMysqlでDEFAULT値を持つかどうかをチェックする方法

SELECT * FROM table WHERE column_name is NOT NULL AND column_name != 'some_default_value'; 

が、どのような将来の変化でいくつかのいずれかであれば、このsome_default_valueを使用することができることを知っていますか? 柔軟なソリューションはありますか?それはテーブルがnullの場合、あなたが知って助けたり、これと同じ値が含まれますrows.count使用する

SELECT * 
FROM table 
WHERE IFNULL(column_name, DEFAULT(column_name)) <> DEFAULT(column_name); 

答えて

2

あなたがDEFAULT機能を使用することができます。

+0

についての詳細を読むことができます。 –

0

試してみてください。

0

あなたは、MySQLでDEFAULT functionを使用することができます。

SELECT * FROM grouptable WHERE column_name is NOT NULL and column_name <> DEFAULT(column_name) 
0

あなたは、テーブルのすべての定義を含め、デフォルト値を見つけるために、information_schema.COLUMNSテーブルを利用することができます。必要を達成するために

サンプル表のための表

CREATE TABLE `Matches` (
    `FootballerName` varchar(100) DEFAULT NULL, 
    `Goal` int(11) DEFAULT '5', 
    `Tournament` varchar(100) DEFAULT NULL 
) ; 

生データ

insert into Matches(FootballerName,Goal,Tournament) 
select 'Messi ', 3 ,'La liga' union 
select 'Ronaldo ', 5 ,'UEFA' union 
select 'Surez ', 2 ,'La liga'; 

必須のクエリ。

SELECT * FROM Matches WHERE Goal not in(
select COLUMN_DEFAULT from information_schema.COLUMNS where TABLE_NAME='Matches' 
and COLUMN_NAME='Goal'); 

今日は1より多くの機能を学ぶ"information_schema.COLUMNS"here

関連する問題