Тема: Как сделать SELECT * кроме _pole_1 _pole_2_
Задался вопросом, как выбрать все кроме нескольких полей.
Есть такая возможность?
Подскажите если кто делал уже.
Добавлено: 14-06-2011 22:58:00
Как сделать SELECT * кроме _pole_1 _pole_2_
Форум системного администратора FreeBSD, Linux, Unix, Windows.
Обсуждение железа, сетевых технологий, програмных комплексов и языков программирования.
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форум системного администратора FreeBSD, Linux, Unix, Windows. → Базы данных → Как сделать SELECT * кроме _pole_1 _pole_2_
Страницы 1
Задался вопросом, как выбрать все кроме нескольких полей.
Есть такая возможность?
Подскажите если кто делал уже.
Добавлено: 14-06-2011 22:58:00
Как сделать SELECT * кроме _pole_1 _pole_2_
никогда не используйте звёздочку
Всегда перечисляйте все поля, которые хотите вытащить.
Это почему ?
а если хочется все поля, кроме одного?
Выборка всех строк кроме первой и пятой (id - имя столбца с первичным ключем):
select * from `имя таблицы` where id <> 1 or id <> 5;
Выборка всех строк кроме первой и пятой (id - имя столбца с первичным ключем):
select * from `имя таблицы` where id <> 1 or id <> 5;
Многоуважаемый, внимательно читайте вопрос.
Александр, ты уверен что тебе не подходит перебор тех столбцов которые нужны? Если не брать способ с созданием функции, вида (view) или временной таблицы то вот:
таблица
CREATE TABLE `accounts` (
`id` int(10) unsigned NOT NULL auto_increment,
`type` varchar(32) character set ascii NOT NULL default 'plain',
`password` text character set ascii collate ascii_bin,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=latin1
там пароли
mysql> select * from accounts where id >= 10 limit 3;
+----+-------+--------------+
| id | type | password |
+----+-------+--------------+
| 10 | plain | kjhKJHkjhKJH |
| 11 | plain | 4GtyVp7f |
| 12 | plain | 4GtyVp7f |
+----+-------+--------------+
3 rows in set (0.00 sec)
вытаскиваем все кроме столбца "type"
mysql> SET @SQL = CONCAT('SELECT ', (SELECT GROUP_CONCAT(COLUMN_NAME) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'accounts' AND COLUMN_NAME NOT IN ('type')), ' FROM accounts where id >= 10 limit 3');
Query OK, 0 rows affected (0.04 sec)
mysql> PREPARE tmpact1 FROM @SQL;
Query OK, 0 rows affected (0.02 sec)
Statement prepared
mysql> EXECUTE tmpact1;
+----+--------------+
| id | password |
+----+--------------+
| 10 | kjhKJHkjhKJH |
| 11 | 4GtyVp7f |
| 12 | 4GtyVp7f |
+----+--------------+
3 rows in set (0.00 sec)
но я не думаю что это то что тебе подойдет
Да , спасибо всем. Тема ясна. Спасибо!
Страницы 1
Форум системного администратора FreeBSD, Linux, Unix, Windows. → Базы данных → Как сделать SELECT * кроме _pole_1 _pole_2_
Форум работает на PunBB, при поддержке Informer Technologies, Inc
Currently installed 13 official extensions. Copyright © 2024 PunBB.