mysql - 我如何扫描一个值变成空而不处理它?

标签 mysql sql go

在 Go 中,我试图编写一个工具来处理 MySQL 表的结构,所以我必须使用很多像这样的查询

show keys from`table`where`Key_name`='Primary'

在 MySQL 中,我无法用选择命令包装此命令并选择我想要的列,所以当我只想要一列(在本例中为 Column_name)时,我如何处理我不想要的列?因为这个查询也返回所有这些其他列; Table、Non_unique、Key_name、Seq_in_index、Column_name、Collat​​ion、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/

相关文章:

mysql - SQL表查询设置

mysql - 将 AVG(整数) 与类别的 AVG(整数) 进行比较

go - 迭代 BigTable 行上的单元格版本

pointers - 返回类型与 struct golang 相同

java - 如何选择选定的月份数据

sql - 需要弄清楚如何解析 GETDATE() 以将其与表中的 HHMMSS 值进行比较以查找耗时

mysql - 在 SQL Server 2008 中替换为

json - 仅解码已批准的字段

c# - c 从函数中快速返回对象

mysql - 如何使用for循环从mysql表中读取数据