一尘不染

选择除mysql中仅一个字段外的所有字段

mysql

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

我知道我可以在选择查询中描述字段名称。
例如:

SELECT fieldname1, fieldname2, fieldname3, fieldname4 FROM tablename;

但是我的问题是,有没有办法以一种简单的方式做到这一点呢?

SELECT * FROM tablename EXCEPT(fieldname3);

我正在使用MySQL和Zend框架。


阅读 288

收藏
2020-05-17

共1个答案

一尘不染

你可以很容易做到

假设您的字段是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),  '<columns_to_delete>,', '') 
    FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '<table>'   AND TABLE_SCHEMA = '<database>'), ' FROM <table>');

    PREPARE stmt1 FROM @sql;
   EXECUTE stmt1;
2020-05-17