麻烦各位把这条Oracle的SQL语句翻译成mysql的select a.id,a.name,a.age,a.sex,a.addr,b.name,b.age,b.sex,b.addr from aa a,(select bb.*,rownum r from bb) b where a.id=b.id and b.r<=? and b.r>=? order by a.id
解决方案 »
- mysql如何检测字段里重复的内容,并且保留一条,其余清空?
- 这条sql有没优化余地
- MYSQL查询问题
- 一个数据库名字是: my_database,我想在本地复制一个my_database1,命令是什么,,
- a表(20M)装载到内存表中,内存表巨占内存(288M)???
- SQL中可以得到数据,MYSQL中就得不到了 大家帮忙看看,在网上实在查不到如何解决
- 从PostgreSQL数据库中的数据库中直接生成E-R图
- 我的mysql怎么不能建数据库啊?
- 使用链接服务器执行远程MySQL数据库上的存储过程报错
- mysql启动失败
- 这一刻你能访问mysql版吗?
- 包含视图的mysql怎么备份和恢复??
2、
b.r <=? and b.r>=? 是变量?如果是,用CONCAT生成SQL语句,动态执行。
select a.id,a.name,a.age,a.sex,a.addr,b.name,b.age,b.sex,b.addr from aa a,(select * from bb) b where a.id=b.id order by a.id limit ?,?
第一个?,起始记录
第二个?,去记录条数
select aa.id,aa.name,aa.age,aa.sex,aa.addr,bb.name,bb.age,bb.sex,bb.addr from aa,bb where aa.id=bb.id order by aa.id limit ?,?
第一个?,起始记录
第二个?,去记录条数
select
a.id,
a.name,
a.age,
a.sex,
a.addr,
b.name,
b.age,
b.sex,
b.addr
from
aa a,
(select bb.*,@rownum:=@rownum+1 as r from bb) b
where
a.id=b.id
and
b.r <=? and b.r>=?
order by
a.id
http://blog.csdn.net/ACMAIN_CHM/archive/2009/04/20/4095531.aspx
+---------+--------+-------+
| article | dealer | price |
+---------+--------+-------+
| 0001 | A | 3.45 |
| 0001 | B | 3.99 |
| 0002 | A | 10.99 |
| 0003 | B | 1.45 |
| 0003 | C | 1.69 |
| 0003 | D | 1.25 |
| 0004 | D | 19.95 |
+---------+--------+-------+
7 rows in set (0.00 sec)
mysql> select s.*,(select count(*) from shop where concat(article,price)<=concat(s.article,s.price)) as rownum from shop s order by rownum;
+---------+--------+-------+--------+
| article | dealer | price | rownum |
+---------+--------+-------+--------+
| 0001 | A | 3.45 | 1 |
| 0001 | B | 3.99 | 2 |
| 0002 | A | 10.99 | 3 |
| 0003 | D | 1.25 | 4 |
| 0003 | B | 1.45 | 5 |
| 0003 | C | 1.69 | 6 |
| 0004 | D | 19.95 | 7 |
+---------+--------+-------+--------+
7 rows in set (0.02 sec)
---------------------
关键就是一个行号的生成,msyq里面没有rownum,所以得自己生成:
有2个方法可以考虑的:1、
set @i =0;
select a.*,@i:=@i+1 as rownum from tb_name a;2、
select a.*, (select count(*) from tb_name b where b.关键字段=a.关键字段 and b.某一字段值<= a.某一字段值) from tb_name a;
另外,你上面的?是在oracle里面的execute immediate部分用的绑定变量用法还是在程序里面调用的用法?