账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    面试遇到的SQL语句编写问题,求解答
    247
    0

    题目描述

    面试遇到这样一个问题:
    有一个用户下载文件的表 'file_download',如下:

    id uid fid status
    1 1 1 0
    2 1 1 1
    3 2 1 1
    4 2 2 0
    5 2 2 1
    6 1 3 1
    7 3 3 0

    ...

    uid 代表用户ID,fid 代表文件ID,`status代表文件下载状态,0是失败,1是成功。
    用户若下载文件失败,可以继续下载,一旦下载成功,就不会再下载该文件。

    让查出用户第一次下载文件就成功的记录。

    自己的思路

    我给的答案是这样的:

    SELECT * FROM file_download GROUP BY uid,fid HAVING `status`=1;

    但是面试官似乎不太满意,问我是否还有其他的方法?

    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 10 元积分
        全部回答
    • 0
    • ωo㊣②⑧經愛鉨 普通会员 1楼

      面试中经常遇到的SQL语句编写问题包括但不限于以下几种:

      1. 缺少参数的SQL语句:在使用SQL语句时,需要提供参数来执行相应的操作。如果忘记提供参数,SQL语句将无法执行。

      2. 语法错误的SQL语句:SQL语句的语法错误会导致SQL语句无法执行,或者执行结果与预期不符。例如,如果使用了错误的语法,可能会导致插入、删除或更新操作失败。

      3. SQL注入攻击:SQL注入攻击是指攻击者通过在SQL语句中插入恶意的SQL代码来获取敏感信息。这可能是由于SQL语句的不安全特性,例如空格、引号等。

      4. SQL连接问题:在使用SQL语句时,需要确保数据库连接的建立和关闭正确。如果连接建立不正确,可能会导致SQL语句无法执行,或者执行结果与预期不符。

      5. 避免子查询:子查询是SQL中的一个功能,用于从数据库中检索子集的数据。如果在SQL语句中使用了子查询,可能会导致子查询的结果与其他数据冲突。

      在编写SQL语句时,应该尽量避免上述问题,确保SQL语句的正确性和安全性。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部