使用'不喜欢'在mySQL show statements

时间:2018-05-07 10:35:46

标签: mysql sql-like columnname show-sql

我有dropdownlist根据用户在之前column names中选择的表名填充dropdown。我使用以下查询

工作的

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以将参数传递给查询,这需要花费大量时间。我想优化它。

有人可以建议吗?

2 个答案:

答案 0 :(得分: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';

答案 1 :(得分:0)

使用where子句

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

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