在 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
我有一个 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