我正在尝试从特定表中选择列名,其中表名称为'98673'
所以我正在使用它:
SELECT
column_name
FROM
information_schema.columns
WHERE
table_name='lime_survey_98673'
AND column_name LIKE '98673'
然而,这不会产生任何数据。 虽然我确实在那里有'98673Blah'的专栏名称。
我知道我一定做错了什么,但是什么?
答案 0 :(得分:12)
对于LIKE,你必须添加一个通配符%,所以:
SELECT
column_name
FROM
information_schema.columns
WHERE
table_name='lime_survey_98673'
AND column_name LIKE '98673%'
答案 1 :(得分:4)
USE %
SELECT column_name
FROM information_schema.columns
WHERE table_name='lime_survey_98673'
AND column_name LIKE '%98673%'
%
表示通配符,并返回包含column_name
98673
答案 2 :(得分:2)
尝试不使用AND column_name LIKE '98673'
部分,除非您真的需要它或:
SELECT column_name
FROM information_schema.columns
WHERE table_name LIKE '%lime_survey_98673%'
-- AND column_name LIKE '%98673%' // only if needed
有关详细信息,请查看以下文档:
答案 3 :(得分:1)
您需要添加%
SELECT
column_name
FROM
information_schema.columns
WHERE
table_name='lime_survey_98673'
AND column_name LIKE '%98673%'
这意味着column_name
包含98673
。
答案 4 :(得分:1)
也可以这样做:
show columns from lime_survey_98673 like '%98673%';
答案 5 :(得分:0)
我认为您还需要添加带表名的通配符。
SELECT
column_name,
table_name
FROM
information_schema.columns
WHERE
schema_name = 'db_name'
AND table_name='%98673%'
AND column_name LIKE '%98673%'
通过这种方式,您可以获取所有表的列名列表,并且列名包含来自特定数据库或模式的文本,如“98673”。
答案 6 :(得分:0)
use this query
SHOW COLUMNS FROM `table_name` LIKE 'coloums_name';