我想知道是否有一种方法可以从我的数据库中的表中选择除一个字段之外的所有字段。
我知道我可以在select查询中描述字段名。
例如:
SELECT fieldname1, fieldname2, fieldname3, fieldname4 FROM tablename;但我的问题是,有没有简单的方法.像这样
SELECT * FROM tablename EXCEPT(fieldname3);我正在使用MySQL和。
发布于 2013-01-10 09:12:01
你可以很容易地做到这一点
假设您的字段为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;发布于 2013-01-10 09:00:08
是的,你可以从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;发布于 2013-01-10 09:54:11
试试这个-
SHOW FIELDS FROM `tablename` WHERE FIELD NOT IN ('f1','f2','f3');执行此查询并获取特定的字段名,并将每个字段名放入数组中。然后在select查询中使用',‘对数组进行内爆。
$fields = implode(',',$fields_arr);
$sql = SELECT $fields FROM `tablename`;https://stackoverflow.com/questions/14253994
复制相似问题