当前位置:Gxlcms > 数据库问题 > MYSQL基础02(查询)

MYSQL基础02(查询)

时间:2021-07-01 10:21:17 帮助过:23人阅读

MSSQL select 1,A -- Oracle中dual 不可缺少 select 1,A from DUAL -- mysql 以下2种格式都支持 select 1,A; select 1,A from DUAL;

2.LIMIT

相对MSSQL来说,MYSQL并没有TOP关键字,但有LIMIT,而且效率更高且更灵活

SELECT * FROM usr LIMIT 1;
-- LIMIT 1 的意思是取1条记录, MYSQL在取完1条记录后将不再操作.

SELECT * FROM usr LIMIT 0,2;
-- LIMIT 0,2的意思是从第一行(包括第一行)开始,取2条记录

SELECT * FROM usr WHERE u_id IN (SELECT u_id FROM usr WHERE dept=信息部 LIMIT 1);
-- 该语句执行时,MYSQL会报错,意思是不能在子查询中使用limit
-- 解决办法,将使用limit的语句再套一层表即可;如下:
SELECT * FROM usr WHERE u_id IN (SELECT * FROM (SELECT u_id FROM usr WHERE dept=信息部 LIMIT 1)aa)

PS:MSSQL中使用TOP,数据库会先排序,然后再返回数据,因此limit的效率比较高

3.子查询的update错误

UPDATE usr SET usr_name=匿名 WHERE u_id IN (SELECT u_id FROM usr WHERE dept=信息部)
-- 语句报错,大概意思是修改表不能使用自身
-- 解决方法,跟上面一样,再套一层表即可
UPDATE usr SET usr_name=匿名 WHERE u_id IN (SELECT * FROM (SELECT u_id FROM usr WHERE dept=信息部)aa)

 

MYSQL基础02(查询)

标签:

人气教程排行