У меня есть таблица со следующими столбцами:
id,name,age,surname,lastname,catgory,active
Вместо: SELECT name,age,surname,lastname,catgory FROM table
Как может я делать что-то вроде этого: SELECT * FROM table [but not select id,active]
Единственный способ сделать это, который я знаю, - это перечислить каждый столбец, который вам нужен ... никаких негативных фильтров, о которых я знаю.
select name, age, surname, lastname, category from table
вы не можете этого сделать, извините. Вообще-то вы не должны были этого делать, если бы могли - указывать такие вещи явно всегда лучше, предположим, что другой разработчик добавит новое поле, и ваше приложение потерпит неудачу
Если в MySql нет специального расширения, вы не сможете этого сделать. Вы либо получаете все, либо должны четко указать, чего хотите. Лучше всего всегда именовать столбцы, так как это не изменит поведение запроса, даже если основная таблица изменится.
Вы слишком продвинуты.
Единственный язык данных, который я видел, который поддерживает ваш синтаксис, - это язык D с его конструкцией «... ВСЕ НО ...»:
Википедия - Спецификация языка D
Доступны некоторые справочные реализации , но в основном в учебных целях.
Не существует поддерживаемого синтаксиса SQL:
select * from table but not select id,active
Если вам нужны все столбцы, кроме одного или нескольких, вы должны явно определить список нужных столбцов.
Вам не следует использовать select * в любом случае. Перечисляйте столбцы, которые вам нужны, и только столбцы, которые вам нужны, это лучшая практика.
Я совершенно уверен, что вы не можете. Вероятно, лучший способ, который я могу придумать, это создать SELECT name, age, surname, lastname, category FROM table
как представление, а затем просто SELECT * FROM view
. В любом случае я предпочитаю всегда выбирать из представления.
Однако, как отмечали другие, если в представление будет добавлен еще один столбец, ваше приложение может потерпеть неудачу. В некоторых системах (PostgreSQL является кандидатом) вы не можете изменить таблицу без предварительного сброса представления, так что это становится немного громоздким.