2016-04-07 2 views
1

Я пытаюсь получить все столбцы из таблицы. Проблема в том, что каждая таблица имеет переменную сумму и порядок столбцов.Получить переменные столбцы для «where value in»

Можно ли получить все столбцы из одной конкретной таблицы?

Мне нужно проверить, существует ли значение в таблице с переменным количеством столбцов.

+1

показать ур данные и указать проблему ... –

+0

Возможный дубликат [MySQL Выберите все столбцы из одной таблицы и некоторые из другой таблицы] (http://stackoverflow.com/questions/3492904/mysql-select-all-columns-from-one-table-and-some-from -another-table) – Jester

+0

Похоже на плохой дизайн базы данных. возможно, вам следует переосмыслить это. –

ответ

0

да, вы можете использовать tablename.* для этого, вот короткий пример:

SELECT table1.* 
FROM table1 
JOIN table2 ON table2.id = table1.id 

, чтобы проверить, существует ли переменная в любом из столбцов вы сначала выбрать столбцы, используя запрос, который scaisEdge отправил а также:

SELECT COLUMN_NAME 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_SCHEMA = 'my_database' 
AND TABLE_NAME = 'my_table'; 

Затем вы Переберите результаты этого запроса к стро в IN(column1, column2 e.t.c) части запроса

И чем года и можно поставить эту строку в где сделать ваши новые выбрать:

WHERE ? IN(column1, column2) 

использовать подготовленные заявления, так что вы не уязвимы для SQL инъекций

+0

Это не поможет мне, к сожалению. Мне нужно проверить, существует ли значение в таблице с переменным количеством столбцов. –

+0

, поэтому вам нужно проверить, существует ли переменная в любом столбце? мы говорим подстроку? или полный матч? – Jester

+0

Исключительно! Полное совпадение. Я получил значение abc, и я должен проверить, существует ли это значение в любом столбце –

0

для значения, связанного с колонкой вы можете использовать

select * from my_table; 

в противном случае для имени столбца следует использовать

SELECT COLUMN_NAME 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_SCHEMA = 'my_database' 
AND TABLE_NAME = 'my_table';