mysql数据库SQL语句
发布网友
发布时间:2022-03-24 22:03
我来回答
共1个回答
热心网友
时间:2022-03-24 23:32
你好!
由于mysql不能是用正则表达式,通过关联的方式也能得到结果:
1:创建数据表
CREATE TABLE tests(
names VARCHAR(16),
chinese INT,
math INT,
english INT
);
2:插入测试数据
INSERT INTO tests VALUES ('张三',80,88,98);
INSERT INTO tests VALUES ('李四',72,78,98);
INSERT INTO tests VALUES ('王五',78,86,98);
INSERT INTO tests VALUES ('马六',89,99,98);
INSERT INTO tests VALUES ('赵琪',83,99,98);
INSERT INTO tests VALUES ('牛八',98,67,98);
COMMIT;
3:完成楼主需要的查询
SELECT t2.names ,t2.chinese+t2.math+t2.english sum_value FROM (
SELECT COUNT(t1.names),t1.names FROM tests t1,
tests t2 WHERE t1.chinese+t1.math+t1.english <= t2.chinese+t2.math+t2.english
GROUP BY t1.names
HAVING COUNT(t1.names) <=3) t1,tests t2 WHERE t1.names = t2.names
4:输出结果配图
结论:通过关联出比自己大的,得到关联数量最少的三条就是想要的结果;
第二个问题,留给你自己动脑子想想吧!
祝你好运!