在MySQL中选择除一个字段外的所有字段

40 浏览
0 Comments

在MySQL中选择除一个字段外的所有字段

这个问题已经有答案了

可能是重复问题:

在MySQL中选择除一个字段之外的所有列?

我想知道是否有一种方法可以从数据库中的表中选择除一个字段之外的所有字段。

我知道可以在select查询中描述字段名。

例如:

SELECT fieldname1, fieldname2, fieldname3, fieldname4 FROM tablename;

但是我的问题是,是否有一种简单的方法来完成它...就像这样

SELECT * FROM tablename EXCEPT(fieldname3);

我正在使用MySQL和Zend框架。

admin 更改状态以发布 2023年5月21日
0
0 Comments

是的,你可以从information_schema.columns中提取

SET @sql = CONCAT('SELECT ', (SELECT GROUP_CONCAT(COLUMN_NAME) FROM 
information_schema.columns WHERE table_schema = 'dbo' AND table_name = 
'tablename' AND column_name NOT IN ('c1', 'c2')), 
' from dbo.tablename');  
PREPARE stmt1 FROM @sql;
EXECUTE stmt1;

0
0 Comments

你可以很容易地像这样完成它

假设你的字段是一个id = 5

那么

   select * from your_table where id !=5 

如果你指的是列

假设你不想选择column3

那么

   select column1,column2,column4 from tablename;

如果你有很多列

    SET @sql = CONCAT('SELECT ', (SELECT REPLACE(GROUP_CONCAT(COLUMN_NAME),  ',', '') 
    FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = ''   AND TABLE_SCHEMA = ''), ' FROM 
'); PREPARE stmt1 FROM @sql; EXECUTE stmt1;

0