Linux MySQL 中的 head 和 tail 等效命令

Linux MySQL 中的 head 和 tail 等效命令

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,然后将结果传输到headtail,例如

$ 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结果集限制为所需的行数。

相关内容