我有一个包含 20 多列的表,有些行的所有列都只有 0。有没有办法过滤掉所有列都是0的行?
我可以用
select * from table where CONCAT(col1,col2,col3)!= '000'
但是我不想在我的例子中写20多个零,并且列数将来可能会增加。
我也可以用
select * from table where COALESCE(col1,col2,col3)>0 or COALESCE(col1,col2,col3)<0
因为某些值可能是负数。但我不想写20+列名。
有没有动态的方法来解决这个问题?
您可以使用 INFORMATION_SCHEMA 动态抓取表中的列。
SELECT COLUMN_NAME from INFORMATION_SCHEMA.columns where TABLE_SCHEMA = "your_database" AND TABLE_NAME = "your_table"