博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL Tricks1
阅读量:4099 次
发布时间:2019-05-25

本文共 1480 字,大约阅读时间需要 4 分钟。

逛stackoverflow的时候偶然看到一些MySQL查询的小技巧

来源:
例一:

CREATE TABLE MovieList(    ID INT,    MovieName VARCHAR(25),    CONSTRAINT ml_pk PRIMARY KEY (ID),    CONSTRAINT ml_uq UNIQUE (MovieName));INSERT INTO MovieList VALUES (1, 'American Pie');INSERT INTO MovieList VALUES (2, 'The Notebook');INSERT INTO MovieList VALUES (3, 'Discovery Channel: Africa');INSERT INTO MovieList VALUES (4, 'Mr. Bean');INSERT INTO MovieList VALUES (5, 'Expendables 2');CREATE TABLE CategoryList(    MovieID INT,    CategoryName VARCHAR(25),    CONSTRAINT cl_uq UNIQUE(MovieID, CategoryName),    CONSTRAINT cl_fk FOREIGN KEY (MovieID) REFERENCES MovieList(ID));INSERT INTO CategoryList VALUES (1, 'Comedy');INSERT INTO CategoryList VALUES (1, 'Romance');INSERT INTO CategoryList VALUES (2, 'Romance');INSERT INTO CategoryList VALUES (2, 'Drama');INSERT INTO CategoryList VALUES (3, 'Documentary');INSERT INTO CategoryList VALUES (4, 'Comedy');INSERT INTO CategoryList VALUES (5, 'Comedy');INSERT INTO CategoryList VALUES (5, 'Action');

对于这样一个表,找到CategoryName同时为Romance和Comedy的电影

错误语句:

SELECT  DISTINCT a.MovieNameFROM    MovieList a        INNER JOIN CategoryList b            ON a.ID = b.MovieIDWHERE   b.CategoryName = 'Comedy' AND        b.CategoryName = 'Romance'

这样会返回零记录,因为每一条记录只有一个CategoryName,第一个条件返回true,第二个条件必然返回false,这样and连接起来会返回false。

另一个错误语句:

SELECT  DISTINCT a.MovieNameFROM    MovieList a        INNER JOIN CategoryList b            ON a.ID = b.MovieIDWHERE   b.CategoryName IN ('Comedy','Romance')

转载地址:http://ggzsi.baihongyu.com/

你可能感兴趣的文章
Codis安装部署全架构
查看>>
Codis作者黄东旭细说分布式Redis架构设计和踩过的那些坑
查看>>
公钥,私钥和数字签名这样最好理解
查看>>
RocketMQ与Kafka对比(18项差异)
查看>>
JAVA 中BIO,NIO,AIO的理解
查看>>
mysql关闭prepareStatement功能
查看>>
JAVA使用EPoll来进行NIO处理的方法
查看>>
GC overhead limit exceeded
查看>>
mysql主从复制
查看>>
数据库事务隔离级别与锁
查看>>
关于MYSQL Innodb 锁行还是锁表
查看>>
MySQL表的四种分区类型
查看>>
Java数据库连接 - 预编译SQL语句
查看>>
Lock与synchronized 的区别
查看>>
java中关键字volatile的作用
查看>>
秒杀场景下MySQL的低效
查看>>
Redis 集群的合纵与连横
查看>>
Java NIO 系列教程
查看>>
淘宝内部分享:怎么跳出MySQL的10个大坑
查看>>
bboss持久层多数据源配置及多数据库事务控制使用方法
查看>>