MySQL转储 - 其中=" 1限制2,3和#34;,1意味着什么?

时间:2015-05-08 13:40:40

标签: mysql

mysqldump -uroot --opt --where="1 limit 2, 3" dbname --no-create-info > bk.sql

我使用此命令转储数据库的部分数据或将大型数据库转储到多个文件,并且运行良好。

正如我测试的那样,

2表示跳过前2个记录,

3表示转储3条记录,

但我不明白1表示--where="1 limit 2, 3"中的内容?

2 个答案:

答案 0 :(得分:1)

WHERE 1是" true"的同义词。或"一切" ,因此它不会对您的查询产生任何过滤影响。

查询

SELECT * FROM table WHERE 1 LIMIT 0,5
将从第一条记录开始返回5条记录。

查询

SELECT * FROM table WHERE 1 LIMIT 5
也会提供与上述查询相同的结果。

如果在该表中记录的记录少于5个,则它不会失败但返回任何记录。

查询

SELECT * FROM table WHERE 1 LIMIT 6,5
将返回记录7,8,9,10,11,因为索引从0开始。

答案 1 :(得分:0)

根据此documentationLIMIT后面的语法是偏移量(要跳过的行数),后跟要选择的行数。

[LIMIT {[offset,] row_count | row_count OFFSET offset}]

你也可以LIMIT 3 OFFSET 2

正如我的评论中所述,WHERE 1就像在说WHERE TRUE,它会从表格中的所有记录中进行选择。