head
在 Linux 中,使用和命令很容易从顶部或底部获取前几个数据tail
。
wolf@linux:~$ cat db.txt
| information_schema |
| database_name |
| mysql |
| opencart |
| wordpress |
| performance_schema |
| sys |
wolf@linux:~$
前 2 名
wolf@linux:~$ cat db.txt | head -2
| information_schema |
| database_name |
wolf@linux:~$
最后 2
wolf@linux:~$ cat db.txt | tail -2
| performance_schema |
| sys |
wolf@linux:~$
MySQL中有没有类似的命令?
所有数据库
mysql> SHOW DATABASES;
+--------------------+
| Databases |
+--------------------+
| information_schema |
| database_name |
| mysql |
| opencart |
| wordpress |
| performance_schema |
| sys |
+--------------------+
7 rows in set (0.00 sec)
mysql>
期望输出:前 2 个数据库
mysql> <mysql command here>
+--------------------+
| Databases |
+--------------------+
| information_schema |
| database_name |
期望输出:最后 2 个数据库
mysql> <mysql command here>
| performance_schema |
| sys |
+--------------------+
答案1
在 MySQL 中没有类似于head
或 的命令tail
。
最简单的方法是使用 shell 执行 mysql 查询mysql -e
,然后将结果传输到head
或tail
,例如
$ sudo mysql -e "SHOW DATABASES" --defaults-file=/etc/mysql/debian.cnf | tail -2
performance_schema
sys
如果您想从 mysql shell 中执行此操作,您需要information_schema
像这样查询数据库:
mysql> (SELECT `SCHEMA_NAME` FROM `information_schema`.`SCHEMATA`
ORDER BY `SCHEMA_NAME` DESC LIMIT 2) ORDER BY `SCHEMA_NAME`;
+--------------------+
| SCHEMA_NAME |
+--------------------+
| performance_schema |
| sys |
+--------------------+
2 rows in set (0,00 sec)
使用它将LIMIT
结果集限制为所需的行数。