分享一个mysql面试题

分享一个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运维哈哈。

最后祝各位小伙伴们早日找到自己心仪的工作。有什么问题可以评论、留言。

个人博客:https://blog.waluna.top/

猜你喜欢

转载自blog.csdn.net/qq_45520116/article/details/130796547