我正在尝试从特定表中选择列名,其中表名类似于“98673”
所以我正在使用这个:
SELECT
column_name
FROM
information_schema.columns
WHERE
table_name='lime_survey_98673'
AND column_name LIKE '98673'
但是,这不会产生任何数据。虽然我的列名中确实有“98673Blah”。
我知道我一定做错了什么,但是什么?
对于 LIKE,您必须添加通配符 %,因此:
SELECT
column_name
FROM
information_schema.columns
WHERE
table_name='lime_survey_98673'
AND column_name LIKE '98673%'
利用%
SELECT column_name
FROM information_schema.columns
WHERE table_name='lime_survey_98673'
AND column_name LIKE '%98673%'
%
表示通配符并返回任何column_name
包含98673
除非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
有关更多信息,请查看以下文档:
您需要添加%
SELECT
column_name
FROM
information_schema.columns
WHERE
table_name='lime_survey_98673'
AND column_name LIKE '%98673%'
这意味着column_name
包含98673
.
也可以这样做:
show columns from lime_survey_98673 like '%98673%';
我认为您还需要添加带有表名的通配符。
SELECT
column_name,
table_name
FROM
information_schema.columns
WHERE
schema_name = 'db_name'
AND table_name='%98673%'
AND column_name LIKE '%98673%'
通过这种方式,您可以获得列名列出所有表,并且列名包含来自特定数据库或模式的“98673”等文本。
使用这个查询
SHOW COLUMNS FROM `table_name` LIKE 'coloums_name';