Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何在sql(如3、6、9等)中以第三次乘法顺序选择表中的行_Mysql_Sql_Postgresql - Fatal编程技术网

Mysql 如何在sql(如3、6、9等)中以第三次乘法顺序选择表中的行

Mysql 如何在sql(如3、6、9等)中以第三次乘法顺序选择表中的行,mysql,sql,postgresql,Mysql,Sql,Postgresql,我的表格由1024行和两列组成。 我想选择并显示3、4、6等行。。 在sql查询中是否可能。 如果可能的话,代码是什么 在关系数据库中,没有“第三行”或“第六行”的概念,除非您可以定义排序顺序 假设您确实有一列,您可以通过该列对结果进行排序,以便将行定义为“第三行”或“第四行”,以下内容将适用于Postgres: select * from ( select col1, col2, col3, row_number() over (order by your_sort_c

我的表格由1024行和两列组成。
我想选择并显示3、4、6等行。。 在sql查询中是否可能。
如果可能的话,代码是什么

在关系数据库中,没有“第三行”或“第六行”的概念,除非您可以定义排序顺序

假设您确实有一列,您可以通过该列对结果进行排序,以便将行定义为“第三行”或“第四行”,以下内容将适用于Postgres:

select *
from (
  select col1, col2, col3, 
         row_number() over (order by your_sort_column) as rn
  from your_table
) t 
where rn in (3,4,6);

其中
您的_sort_列
是定义顺序或行的列。这可以是一个增量id或一个时间戳列,用于存储插入或更新行的时间

在MySQL中,可以通过以下方式完成:

SELECT * from 
(SELECT (@row := @row + 1) num, tab.* FROM your_table, (SELECT @row := 0) r
ORDER by your_sort_column) t
WHERE (num % 3) = 0
select *
from (
  select *, row_number() over (order by your_sort_column) as rn
  from your_table
) t 
where (rn % 3)=0 ;
我们使用了一个模运算符来得到3的倍数的行

查看它在SQL Fiddle上的工作情况:

在PostgreSQL中,可以通过以下方式实现:

SELECT * from 
(SELECT (@row := @row + 1) num, tab.* FROM your_table, (SELECT @row := 0) r
ORDER by your_sort_column) t
WHERE (num % 3) = 0
select *
from (
  select *, row_number() over (order by your_sort_column) as rn
  from your_table
) t 
where (rn % 3)=0 ;

您正在使用哪些数据库管理系统?Postgres还是MySQL?您为每一个添加了一个标记