2017-05-30 39 views
5

'da DEFAULT değerine sahip olup olmadığını nasıl kontrol edebilirim? Sütun değeri null değerine eşit değil ve sütun değeri varsayılan değere eşit değil. BenceSütun değerinin NULL olup olmadığını veya Mysql

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

ama kullanabileceği bildiklerini eğer gelecek değişiklikler bazı tek tabloda bu some_default_value? Esnek bir çözüm var mı? o masa boş olup olmadığını size yardımcı veya dolayısıyla aynı değeri içerecektir rows.count kullanmak

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

cevap

2

Sen DEFAULT işlevini kullanabilirsiniz.

+0

hakkında daha fazla bilgi bulabilirsiniz. –

0

Dene:

0

Sen MySQL DEFAULT function kullanabilirsiniz:

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

Tablonun tüm tanımına dahil varsayılan değerleri bulmak için information_schema.columns tablo yararlanabilirler.

Örneği Tablo Tablo için

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

Ham Veriler

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

Gerekli Sorgusu gerekiyor ulaşmak için.

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

Bugün 1 daha fonksiyonunu Öğrenilmiş "information_schema.columns"here

İlgili konular