在mysql show语句中使用“not like”

pgx2nnw8  于 2021-06-25  发布在  Mysql
关注(0)|答案(2)|浏览(643)

我有一个 dropdownlist 正在填充的 column names 基于用户在上一页中选择的表名 dropdown . 我正在使用以下查询 SHOW columns from TableName LIKE '%name' 哪个有效
我想包括所有的列名称,除了少数列。因此,我想要这样的查询

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

这是行不通的。甚至

SHOW columns from abcTable NOT LIKE '%name'

不起作用
目前我运行了两个循环来获取列名- outer loop 传递表名和 inner loop 将参数传递给查询需要花费大量时间。我想对其进行优化。
有人能建议一下吗?

qhhrdooz

qhhrdooz1#

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

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

f45qwnt82#

使用where子句

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

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

相关问题