首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >选择mysql中的所有字段,只有一个字段除外

选择mysql中的所有字段,只有一个字段除外
EN

Stack Overflow用户
提问于 2013-01-10 08:56:08
回答 3查看 68.4K关注 0票数 16

可能重复: Select all columns except one in MySQL?

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

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

例如:

代码语言:javascript
复制
SELECT fieldname1, fieldname2, fieldname3, fieldname4 FROM tablename;

但我的问题是,有没有简单的方法.像这样

代码语言:javascript
复制
SELECT * FROM tablename EXCEPT(fieldname3);

我正在使用MySQL和。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-01-10 09:12:01

你可以很容易地做到这一点

假设您的字段为id =5

然后

代码语言:javascript
复制
   select * from your_table where id !=5 

如果你指的是列

让我们说你不想选择column3

然后

代码语言:javascript
复制
   select column1,column2,column4 from tablename;

如果你有很多列

代码语言:javascript
复制
    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;
票数 12
EN

Stack Overflow用户

发布于 2013-01-10 09:00:08

是的,你可以从information_schema.columns上取

代码语言:javascript
复制
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;
票数 7
EN

Stack Overflow用户

发布于 2013-01-10 09:54:11

试试这个-

代码语言:javascript
复制
SHOW FIELDS FROM `tablename` WHERE FIELD NOT IN ('f1','f2','f3');

执行此查询并获取特定的字段名,并将每个字段名放入数组中。然后在select查询中使用',‘对数组进行内爆。

代码语言:javascript
复制
$fields = implode(',',$fields_arr);
$sql = SELECT $fields FROM `tablename`;
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14253994

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档