SQL语句中如何SELECT除了某个字段的所有字段

如一个表有id,name,time ...等字段
我想要除了id的所有字段。
正常情况是 select name,time... from xx;
是否有更加便利的操作?

阅读 48.9k
4 个回答
    SELECT
     CONCAT(' select ',GROUP_CONCAT(COLUMN_NAME),' from ', TABLE_NAME,' ;')
  FROM information_schema.COLUMNS
  WHERE table_name = 'xxxx'
  AND TABLE_SCHEMA = 'ccms_xxx' and COLUMN_NAME != 'ID';

执行上面sql得出一条新的sql语句,用这个新的sql语句执行就能得到你想要的结果。

只能是给你把字段列出来或者给你生成查询除了某个字段以外的sql,想一条sql找出来并执行是行不通的

select concat('select ',group_concat(case when column_name='col' then null else column_name end),' from table;') from information_schema.columns where table_schema='db' and table_name='table';

没有,老老实实把想要的字段列出来吧。

mysql没有这种语法,如果你实在不想写字段名,那可以创建一个视图只包含你需要的列, select * from viewtable 就行

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题