高频SQL 50题:查询
1757. 可回收且低脂的产品
SELECT product_id FROM Products WHERE low_fats = 'Y' AND recyclable = 'Y';
584. 寻找用户推荐人
在做题的时候,我直接使用'!='进行判断,结果只能返回一个‘Zack’,和我们预知的并不相符。MySQL使用三值逻辑--TRUE,FALSE,UNKOWN。与传统的两值逻辑不同,在三值逻辑中,与NULL值进行比较时,结果会变成UNKNOWN。这是因为NULL表示缺失或者未知的值,因此与其他任何值包括其自身比较时都会产生未知的结果。因此在实际使用时,需要使用‘IS NULL’和‘IS NOT NULL’操作符。
SELECT name FROM Customer WHERE referee_id != '2' OR referee_id IS NULL;
595. 大的国家
SELECT name, population, area FROM World WHERE area >= 3000000 OR population >= 25000000;
1148. 文章浏览 I
SELECT DISTINCT author_id AS id FROM Views WHERE author_id = viewer_id ORDER BY id;
注意:
1. 使用DISTINCT关键字来检索唯一元素;
2. 使用ORDER BY进行排序。
1683. 无效的推文
SELECT tweet_id FROM tweets WHERE CHAR_LENGTH(content) > 15;
注意:
1. 对于SQL,计算字符串中字符数的最佳函数是CHAR_LENGTH(str),返回str的长度;
2. 另一个常用的函数是LENGTH(str),因为content列只包含英文字符,没有特殊字符。否则,LENGTH()可能会返回不同的结果,因为该函数返回字符串的字节数,某些字符包含多于一个字节。以‘¥’为例,CHAR_LENGTH()返回结果为1,而LENGTH()返回结果为2,因为该字符串包含2个字节。ASCII中,一个英文字母(不区分大小写)为一个字节,一个中文汉字为两个字节。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!