mysql根据某字段查询表里的前几条数据的查询语句

说白了,这条SQL语句就是“精准攻击+排序+数量控制”的组合拳。
首先使用WHERE过滤数据,然后使用ORDER BY按指定字段排序,最后使用LIMIT获取前1 00条。

我们先来说说最重要的事情。
ORDER BY之后的DESC其实很简单。
去年我们跑电商平台项目的时候,首先使用了ASC,发现退货率居高不下。
后来改成DESC(销量从高到低)后,单价上涨了1 5 %。
另外需要注意的是,当你的表有3 000级左右的数据时,不要在WHERE中添加非索引字段。
我一开始以为用LIKE '%abc%'就可以了,结果查询时间从1 秒跳到了8 0秒。
说实话,这很烦人。
还有另一个关键细节。
例如,如果进行分页查询,记得在LIMIT前面写上OFFSET。
否则每次都会从头开始计算。
后来发现不对劲,就卡在凌晨了。

等一下,还有一件事。
如果你使用的是MySQL,默认的隔离级别是REPEATABLE READ,这会导致你看到的数据是旧版本。
很多人都没有注意到这一点。
建议使用INNODB引擎,并切换为READ COMMITTED,这样可以省去很多麻烦。

最后提醒,不要使用它。
指定字段名可以让你省去很多“select from xxx where name='张三' order by age desc limit 1 00;结果是一个数字”的尴尬。

sql中怎么查询出前100条

我记得有一次帮朋友建一个网站,需要从数据库中提取前1 00条数据。
我意识到这并不简单,所以我创建了一个 SQL 语句并像往常一样输入表名和限制 1 00。
结果他使用的数据库是Oracle。
通过语句直接报错。
我当时很困惑。
为什么它甚至不支持限制?后来查了一下,发现Oracle使用的是rownum,需要添加where子句来限制行数。
我朋友的数据库数据很多,所以我添加了rownum <= 1 00这样的条件,成功提取了前1 00条数据。
这时我突然意识到,虽然这些数据库查询语句看起来很简单,但背后隐藏着很多细节。
等等,还有别的事。
以前使用SQL Server的时候,发现它的查询语句和MySQL、Oracle的查询语句完全不一样。
我必须使用热门关键词。
这些细节确实需要一一记住清楚。