2013-03-27 10 views
8

Staram się wybierać nazwy kolumn z określonej tabeli, gdzie nazwa tabeli jest jak „98673”MySQL Podobnie jak w SELECT column_name

Więc używam to:

SELECT 
    column_name 
FROM 
    information_schema.columns 
WHERE 
    table_name='lime_survey_98673' 
    AND column_name LIKE '98673' 

Jednak to nie spowoduje żadnych danych. Chociaż mam nazwy kolumn z "98673Blah" tam.

Wiem, że muszę robić coś złego, ale co?

Odpowiedz

8

Dla takich jak ty trzeba dodać wieloznaczny%, więc:

SELECT 
    column_name 
FROM 
    information_schema.columns 
WHERE 
    table_name='lime_survey_98673' 
    AND column_name LIKE '98673%' 
+0

Wielki I był z widokiem że rzeczywiście! – BonifatiusK

4

USE %

SELECT column_name 
FROM information_schema.columns 
WHERE table_name='lime_survey_98673' 
AND column_name LIKE '%98673%' 

% wskazuje wieloznaczny i zwraca każdy column_name że zawiera 98673

1

Trzeba dodać %

SELECT 
    column_name 
FROM 
    information_schema.columns 
WHERE 
    table_name='lime_survey_98673' 
    AND column_name LIKE '%98673%' 

oznacza to, że column_name zawiera 98673.

2

Wypróbuj go bez części AND column_name LIKE '98673' chyba że naprawdę potrzebują, czyli

SELECT column_name 
FROM information_schema.columns 
WHERE table_name LIKE '%lime_survey_98673%' 
-- AND column_name LIKE '%98673%' // only if needed 

Aby uzyskać więcej informacji, zajrzyj w dokumentacji:

0

Chyba trzeba dodać wieloznaczny z nazwą tabeli również.

SELECT 
    column_name, 
    table_name 
FROM 
    information_schema.columns 
WHERE 
    schema_name = 'db_name' 
    AND table_name='%98673%' 
    AND column_name LIKE '%98673%' 

W ten sposób można uzyskać listę nazw kolumn wszystkie tabele i tam nazwa kolumny zawierają tekst jak „98673” z określonej bazy danych lub schematu.

1

Można zrobić to w ten sposób zbyt:

show columns from lime_survey_98673 like '%98673%'; 
+0

Nie zapewnia to odpowiedzi na pytanie. Gdy masz już wystarczającą [reputację] (https://stackoverflow.com/help/whats-reputation), będziesz mógł [komentować dowolny wpis] (https://stackoverflow.com/help/privileges/comment); zamiast tego [dostarczaj odpowiedzi, które nie wymagają wyjaśnień od pytającego] (https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- i-do-zamiast). - [Z recenzji] (/ opinia/niskiej jakości-posts/17965187) –

0

użycie tego zapytania

SHOW COLUMNS FROM `table_name` LIKE 'coloums_name';