2017-05-30 4 views
5

में DEFAULT मान है, मैं कॉलम मान के लिए रिकॉर्ड्स प्राप्त करना चाहता हूं जो शून्य और कॉलम मान के बराबर नहीं है, डिफ़ॉल्ट मान के बराबर नहीं है। मुझे पता है कि हमयह जांचने के लिए कि कॉलम मान न्यूल है या MySQL

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

लेकिन उपयोग कर सकते हैं क्या हुआ अगर भविष्य में परिवर्तन में कुछ एक तालिका में इस some_default_value? क्या कोई लचीला समाधान है? rows.count यह मदद मिलेगी आप जानते हैं कि तालिका रिक्त है या इस प्रकार एक ही मान का उपयोग करने के

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

उत्तर

2

आप DEFAULT फ़ंक्शन का उपयोग कर सकते हैं।

+0

सीखा 1 अधिक समारोह आज के बारे में अधिक पढ़ सकते हैं। –

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'); 

आप "information_schema.COLUMNS"here

संबंधित मुद्दे