在 mySQL 中使用 'not like' 显示语句

use 'not like' in mySQL show statements

我有一个 dropdownlist,它由 column names 根据用户在前一个 dropdown 中选择的 table 名称填充。我正在使用以下查询

SHOW columns from abcTableName LIKE '%name' 有效

我希望全部包含除少数列之外的所有列名。因此,我想要这样的查询

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

这不起作用。甚至

SHOW columns from abcTable NOT LIKE '%name'  

无效

目前我运行有两个循环来获取列名称——outer loop传递table名称,inner loop传递参数给查询很多时间。我想优化一下。

任何人都可以请建议吗?

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

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

使用 where 子句

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

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