如何在mysql中生成类似oracle中的rownum行号?

需求:使用sqoop从mysql抽数,由于表数据量比较大,超过1亿条,需要使用类似oracle自带的rownum字段来做切分,
mysql没有自带的rownum字段

#执行sqoop命令
${sqoop_home}/sqoop import \
-Dorg.apache.sqoop.splitter.allow_text_splitter=true \
--connect jdbc:mysql://10.33.44.55:2883/testdb \
--username test \
--password 'test%2022' \
--fields-terminated-by '|' \
--null-string '\\N' \
--null-non-string '\\N' \
--hive-delims-replacement ' ' \
--outdir /tpdata/data/sqoopcode \
--delete-target-dir \
--fetch-size 200 \
--map-column-hive ID=String,JOB_NO=String,SERIAL_NO=String,USER_ACCOUNT=String,TYPE=String,DOCUMENT_TYPE=String,TOTAL_NUM=String,STATUS=String,INTERNAL_URL=String,EXTERNAL_URL=String,REMARK=String,CREATOR=String,MODIFIER=String,GMT_CREATED=String,GMT_MODIFIED=String,IS_DELETED=String,ASYNC_SERIAL_NO=String,FAIL_POLICYS=String \
--target-dir /user/hive/warehouse/test/table_01/etl_date=${etldate} \
--query "select * from test.table_01 t1 where \$CONDITIONS" \
-m 1 >> ${sqoop_error_file} 2>&1

此时可以使用以下两种方式来生成行号:
第一种方式:使用自定义变量来生成行号

--@rownum是用户自定义的会话变量,可以用来在查询中生成行号
select t.col,(@rownum:=@rownum+1) as rowkey
from mysql.table t1,(select @rownum:=0) t2
where t2.rowkey>='10000000' and t2.rowkey<'20000000'

第二种方式:使用row_number窗口函数来生成行号(Mysql8.0版本)

select t.col ,row_number() over(order by t.col) as rn
from mysql.table t1 

相关推荐

  1. 如何mysql生成类似oraclerownum?

    2024-04-02 07:54:04       32 阅读
  2. ORACLEROWNUM机制和注意细节(避坑

    2024-04-02 07:54:04       31 阅读
  3. SQLtop、limit以及rownum

    2024-04-02 07:54:04       32 阅读
  4. Vim 配置文件设置自动显示

    2024-04-02 07:54:04       57 阅读
  5. OracleOracle数据库数据类型

    2024-04-02 07:54:04       21 阅读
  6. php 生成订单

    2024-04-02 07:54:04       64 阅读
  7. oracle如何删除表数据

    2024-04-02 07:54:04       54 阅读
  8. 如何Python生成随机密码?

    2024-04-02 07:54:04       30 阅读
  9. MySQL如何MySQL编写循环

    2024-04-02 07:54:04       30 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-02 07:54:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-02 07:54:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-02 07:54:04       82 阅读
  4. Python语言-面向对象

    2024-04-02 07:54:04       91 阅读

热门阅读

  1. Gauss到底是不是国产数据库

    2024-04-02 07:54:04       31 阅读
  2. Windows Server设置NTP服务器

    2024-04-02 07:54:04       39 阅读
  3. 如何反反爬虫

    2024-04-02 07:54:04       33 阅读
  4. Docker环境安装Postgresql数据库Posrgresql 15.6

    2024-04-02 07:54:04       28 阅读
  5. HTTPS工作原理

    2024-04-02 07:54:04       32 阅读
  6. 浅述HTML5的离线存储

    2024-04-02 07:54:04       27 阅读
  7. MongoDB聚合运算符:$lt

    2024-04-02 07:54:04       38 阅读
  8. 云计算概述报告

    2024-04-02 07:54:04       27 阅读