mysql表名用字符串连接?

时间:2011-09-13 11:03:56

标签: mysql

我想选择表名包含另一个字段名

的所有表

喜欢

Show Tables Like  '%' + table.table_name_prefex

但这会给我一个错误。

[Err] 1064 - You have an error in your SQL syntax; check the
     

手册,对应右侧的MySQL服务器版本   在第1行的'+ table.table_name_prfex'附近使用的语法

2 个答案:

答案 0 :(得分:1)

你不能像你想要的那样做

你可以做点什么

SELECT 
 TABLE_NAME
FROM    
    INFORMATION_SCHEMA.TABLES    
WHERE    
    table_schema = 'mydb' AND    
    table_name LIKE '%mypartname%';

根据评论更新:

SELECT 
     TABLE_NAME
    FROM    
        INFORMATION_SCHEMA.COLUMNS    
    WHERE    
        table_schema = 'mydb' AND
        COLUMN_NAME LIKE '%mypartname%';

答案 1 :(得分:1)

有点暗示一个非常聪明或非常愚蠢的架构。

你不能用'SHOW'来做 - 因为Haim Evgi(POST删除)说你需要使用信息模式。

  

我想选择所有那些从另一个db

中的字段开始的表

所以只需加入......

SELECT t.table_schema
, t.table_name
FROM INFORMATION_SCHEMA.TABLES t
, otherdb.table o
WHERE t.table_name LIKE CONCAT('%',o.table_name_prefex)
AND .... /* filters to select rows from otherdb.table */

如果您的表格真的被称为表格,那么您需要将其括在后面的引号中。