2011-01-18 3 views
2

Хорошо, я знаю, вы можете сделать следующее, чтобы получить все имена столбцов.mysql выбрать все имена таблиц, кроме

SHOW COLUMNS FROM person; 

Однако он не позволяет указывать утверждения.

Есть ли способ получить полный список и просто сказать не этот?

Так я в основном ищет что-то вроде этого:

select (show columns from person where Field <> 'id') from person 
+0

Система Я на использует MySQL 4 не 5. – David

+0

Это было бы полезно знать :) Это как с помощью SQL Server 7.0, где нам нужно выкопать супер ниндзя силы для. – RichardTheKiwi

ответ

3

USE SHOW [FULL] COLUMNS {FROM | IN} tbl_name [{FROM | IN} db_name] [LIKE 'pattern' | WHERE expr]
Пример:

SHOW CHARACTER SET WHERE `По умолчанию collation` LIKE '% японский%';

More about show here

Попробуйте что-то вроде SHOW COLUMNS FROM person WHERE column != 'value';

+0

Я смею отформатировать этот обратный ход вправо :-) – Axarydax

+0

Показать столбцы ... с любым, где не работает; по крайней мере для меня. – David

+0

Это предложение WHERE должно быть 'WHERE field! = 'Value''. Проверьте выходные данные 'SHOW COLUMNS', чтобы увидеть имена полей. – Timm

1

MySQL documentation говорит, что ИНЕКЕ допускается. Прочтите документы.

+0

Мы используем mysql4 не 5. И, возможно, это настройка, которую мы имеем, но я не могу использовать ее в команде show column, иначе мне не пришлось бы спрашивать здесь. – David

3

Или вы можете использовать правильный запрос SQL против information_schema

select * from information_schema.columns 
where table_schema = 'test' # your db name 
and table_name = 'person ' 
and column_name != 'id' 

Для MySQL , вы можете использовать LIKE непосредственно вместо WHERE http://dev.mysql.com/doc/refman/4.1/en/show-columns.html

SHOW COLUMNS FROM 'Person' LIKE '%x%' 

Однако, к сожалению, не поддерживает a NOT статья.

Если я могу предложить

  • Если вам нужна эта информация из консоли MySQL/phpAdmin/эквивалент, только глазное яблоко это ..
  • Если вам это нужно от переднего конца программы, как PHP , сделать это из это окружающая среда.
+0

Хотя вы, кажется, снисходительны, это правильный ответ. –

+0

Я не пытаюсь звучать снисходительно, но information_schema не существует в mysql4 db, который мне нужно использовать. – David

0

Вы не можете выполнить истинную SHOW COLUMNS WHERE в MySQL 4. документы показывают только дополнительный LIKE параметр для этой версии: http://dev.mysql.com/doc/refman/4.1/en/show-columns.html

Однако, вы можете использовать INFORMATION_SCHEMA метаданных.

USE information_schema; 
SELECT * FROM `COLUMNS` WHERE `TABLE_NAME` = 'person' AND `COLUMN_NAME` != 'value'; 
Смежные вопросы