文章目录
分享一个mysql面试题
今天在群里,有一个群友发了一个面试题,引起了大家的激烈讨论。结果博主迅速回应,连夜将该面试题分享给了大家。
事情是这样的:
群友在某招聘软件投简历,看到了这样一个邀请
打开链接是这样一个问题:
然后群友就把问题发在群里面,问群友怎么写。结果群友开始激烈讨论起来,有点不堪入目。
尽管大家普遍认为这个面试题没有实际用途,但我个人认为既然这个题目被提出来,面试官可能有其需求,它可能只是一个小例子,类似于实际场景。但话说运维还是少参与改表的事情,尽量让开发去写脚本改。
具体我们就不详细说了,让我们来看下面试题怎么解答。
首先我在虚拟机装了一个mariadb数据库来模拟环境:
# 为了方便,直接使用yum安装
yum install mariadb-server -y
创建一个表并插入数据来模拟面试题中表
CREATE TABLE user (
name VARCHAR(20) NOT NULL,
sex ENUM('男','女') default '男') CHARSET=utf8;
insert user (name)values('陈佳');
insert user (name,sex)values('王辉','女');
insert user (name)values('胡前');
insert user (name)values('吴坚');
insert user (name)values('褚航');
insert user (name,sex)values('张宇红','女');
insert user (name)values('隽大伟');
MariaDB [test]> select * from user;
+-----------+------+
| name | sex |
+-----------+------+
| 陈佳 | 男 |
| 王辉 | 女 |
| 胡前 | 男 |
| 吴坚 | 男 |
| 褚航 | 男 |
| 张宇红 | 女 |
| 隽大伟 | 男 |
+-----------+------+
7 rows in set (0.00 sec)
MariaDB [test]>
虽然博主已经有数据库的学习经历,但已经很久没有实际操作了,导致知识都生疏了=_=!
不过,通过我对gpt训练,得到了想要的结果。
下面是训练gpt的过程:
最终得到了想要的结果:
自己在根据题目修饰以下,实现了面试题结果:
SELECT name, CASE
WHEN sex = '男' THEN '1'
WHEN sex = '女' THEN '2'
END AS sex
FROM (
SELECT name, sex,
CASE
WHEN name IN ('陈佳', '张宇红') THEN 2
WHEN name IN ('胡前') THEN 4
WHEN name IN ('隽大伟') THEN 3
ELSE 1
END AS multiplier
FROM user
) AS temp
CROSS JOIN (
SELECT 1 AS number UNION ALL
SELECT 2 AS number UNION ALL
SELECT 3 AS number UNION ALL
SELECT 4 AS number
) AS multipliers
WHERE multipliers.number <= temp.multiplier;
最终实现效果:
虽然我无法确定面试官具体期望得到什么结果,但gpt至少实现了面试题的效果。
gpt还是比较强大的,面向gpt运维哈哈。
最后祝各位小伙伴们早日找到自己心仪的工作。有什么问题可以评论、留言。