在 mySQL 显示语句中使用“不喜欢”

问题描述 投票:0回答:2

我有一个

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

有人可以建议吗?

mysql sql-like database-schema show-sql
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';

0
投票

使用where子句

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

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

© www.soinside.com 2019 - 2024. All rights reserved.