在 Go 中,我试图编写一个工具来处理 MySQL 表的结构,所以我必须使用很多像这样的查询
show keys from`table`where`Key_name`='Primary'
在 MySQL 中,我无法用选择命令包装此命令并选择我想要的列,所以当我只想要一列(在本例中为 Column_name
)时,我如何处理我不想要的列?因为这个查询也返回所有这些其他列; Table、Non_unique、Key_name、Seq_in_index、Column_name、Collation、Cardinality、Sub_part、Packed、Null、Index_type、Comment、Index_comment
。
在我的 Go 代码中,我有这样的行
err = keysData.Scan(columnName)
如果我能做这样的事情就好了
err = keysData.Scan(_, _, _, _, columnName)
但这并没有真正起作用,获取 cannot use _ as value
我是否必须为这些不需要的列中的每一列声明丢弃值?
最佳答案
我会使用 INFORMATION_SCHEMA。这比 SHOW KEYS 更通用,因为您可以选择单独的列。例如:
SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.STATISTICS
WHERE TABLE_NAME='mytable' AND INDEX_NAME='PRIMARY'
ORDER BY SEQ_IN_INDEX
参见 https://dev.mysql.com/doc/refman/8.0/en/statistics-table.html
关于mysql - 我如何扫描一个值变成空而不处理它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51212194/