2017-05-30 99 views

回答

2

可以使用DEFAULT功能:

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

今天学到更多1功能。 –

0

尝试使用rows.count,这将有助于你知道,如果该表为空或因此含有相同的值。

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