这是sqlserver的语句,改成mysql的怎么写啊。求大神指教。报语法错误。因为我的数据库用的是mysql
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了这是sqlserver的语句,改成mysql的怎么写啊。求大神指教。报语法错误。因为我的数据库用的是mysql相关的知识,希望对你有一定的参考价值。
select top 10 * from cgxx where receipitsId not in (select top 0 receipitsId from cgxx order by receipitsId asc) order by receipitsId asc
select * from cgxx where receipitsId not in order by receipitsId limit 10,10limit 10,10表示返回满足条件的数据中第10条开始的10条,如果以10条为1页,那就是第2页,第一页的表示是limit 10或者limit 0,10,第3页的表示是limit 20,10
理解了上面的语句,你会发现mysql是适合INTERNET的数据库~ 参考技术A mysql中使用limit 进行分页
关于SQL语句:MySql转成SQLServer
String sql = "select * from ec_order " + clause
+ " order by id desc limit " + (page - 1) * pagesize + ","
+ pagesize;
上面这句是mysql的sql语句,但是我不会用mysql只会sqlserver,请问上面这句怎么转成sqlserver的语句?请大神帮忙啊!
假设 clause = where 1=1
假设 pagesize = 10 page = 1
也就是每页10行数据, 查询第1页
-- MYSQL 下面执行的语句:
select * from ec_order
where 1=1
order by id desc limit 0 , 10;
-- 切换到 SQL Server
select top 10 *
from ec_order
where 1=1
order by id desc
假设 pagesize = 10 page = 2
也就是每页10行数据, 查询第2页
-- MYSQL 下面执行的语句:
select * from ec_order
where 1=1
order by id desc limit 10 , 10;
-- 切换到 SQL Server 方案1.
select top 10 *
from ec_order
where 1=1 AND id NOT IN (SELECT top 10 id FROM ec_order where 1=1 order by id desc)
order by id desc
-- 切换到 SQL Server 方案2.
SELECT *
FROM
(
select ROW_NUMBER() OVER(ORDER BY id desc) AS NO, ec_order.*
from ec_order
where 1=1
)
WHERE NO between 11 and 20
-- 切换到 SQL Server 方案3.
select top 20 * from ec_order where 1=1 order by id desc
EXCEPT
select top 10 * from ec_order where 1=1 order by id desc 参考技术A --第一种方式[针对数据量较小的分页统计]
drop table #tmp;
Select identity(int,1,1) as id,* into #tmp from songlist
select sourcefilename ,songname,videotype,singerid,singer,songpic from #tmp where id between 200 and 300;
select count(*) as n1,ceiling(count(*)/200) as n2 from songlist;
--第二种方式[主要针对数据量稍微大点的 分页统计 先按照主键排序]
declare @pagerow int ,@pageid int
set @pagerow = 100;--每页显示的个数
set @pageid = 2;--第几页
select top @pagerow sourcefilename, songname,videotype,singerid,singer,songpic from songlist
where sourcefilename not in (select top @pagerow*(@pageid-1) sourcefilename from songlist order by sourcefilename)
order by sourcefilename;追问
能举个例子吗?看不懂上面的代码啊?
追答就是给ec_order 表添加一个字段 让他自动增长 然后插入到临时表中 然后直接用between and 查询 要查的 区间就可以了
以上是关于这是sqlserver的语句,改成mysql的怎么写啊。求大神指教。报语法错误。因为我的数据库用的是mysql的主要内容,如果未能解决你的问题,请参考以下文章
想把下面sqlserver中的查询改成oracle中的写法,可是一到Convert那里就报:缺失表达式.在oracle中要怎么写