mysqldump -uroot --opt --where="1 limit 2, 3" dbname --no-create-info > bk.sql
我使用此命令转储数据库的部分数据或将大型数据库转储到多个文件,并且运行良好。
正如我测试的那样,
2
表示跳过前2个记录,
和3
表示转储3条记录,
但我不明白1
表示--where="1 limit 2, 3"
中的内容?
答案 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)
根据此documentation,LIMIT
后面的语法是偏移量(要跳过的行数),后跟要选择的行数。
[LIMIT {[offset,] row_count | row_count OFFSET offset}]
你也可以LIMIT 3 OFFSET 2
。
正如我的评论中所述,WHERE 1
就像在说WHERE TRUE
,它会从表格中的所有记录中进行选择。