0

我有一个根据用户在前面选择的表名dropdownlist填充的。我正在使用以下查询column namesdropdown

SHOW columns from abcTableName LIKE '%name' 哪个有效

我希望所有人都包含除几列之外的所有列名。因此,我想要这样的查询

SHOW columns from abcTable NOT LIKE ('%name','%pk','%fk')  

这是行不通的。甚至

SHOW columns from abcTable NOT LIKE '%name'  

不工作

目前我运行两个循环来获取列名-outer loop传递表名并将inner loop参数传递给需要大量时间的查询。我想优化它。

有人可以建议吗?

4

2 回答 2

1

您可以使用更正式的方法:

SELECT COLUMN_NAME
FROM information_schema.columns
WHERE 
    table_schema = '[database]' AND
    table_name = '[table_name]' AND
    COLUMN_NAME LIKE '%name' AND
    COLUMN_NAME NOT LIKE '%pk' AND
    COLUMN_NAME NOT LIKE '%fk';
于 2018-05-07T10:39:49.763 回答
0

使用 where 子句

SHOW columns from abcTable where field not like '%name'  

查看 SHOW 语句的扩展 https://dev.mysql.com/doc/refman/8.0/en/extended-show.html

于 2018-05-07T10:56:19.310 回答