SELECT列中的MySQL Like语句

时间:2013-03-27 11:05:56

标签: mysql sql database

我正在尝试从特定表中选择列名,其中表名称为'98673'

所以我正在使用它:

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

然而,这不会产生任何数据。 虽然我确实在那里有'98673Blah'的专栏名称。

我知道我一定做错了什么,但是什么?

7 个答案:

答案 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';