mysql not in 和 not exits

not exists 版本
SELECT
  org.*,
  u.rname AS uname
FROM
  exam_org org
  LEFT JOIN exam_user u
    ON org.ouid = u.uno WHERE NOT EXISTS
    (SELECT
      id
    FROM
      exam_org
    WHERE id IN (8,0)
      AND id = org.id)

not in
SELECT
  org.*,
  u.rname AS uname
FROM
  exam_org org
  LEFT JOIN exam_user u
    ON org.ouid = u.uno WHERE id not in(8,0)

由此可见,对于没有子查询来说 ,not in 和 not exists 应该是差不多的
时间: 2024-10-10 00:17:54

mysql not in 和 not exits的相关文章

mysql中IN和EXITS效率

mysql中的in语句是把外表和内表作hash 连接,而exists语句是对外表作loop循环,每次loop循环再对内表进行查询.一直大家都认为exists比in语句的效率要高,这种说法其实是不准确的.这个是要区分环境的. 如果查询的两个表大小相当,那么用in和exists差别不大. 如果两个表中一个较小,一个是大表,则子查询表大的用exists,子查询表小的用in: 例如:表A(小表),表B(大表) 1: select * from A where cc in (select cc from

MySQL注入

SQL Injection Tutorial by Marezzi (MySQL) SQL注入教程由Marezzi(MySQL的) In this tutorial i will describe how sql injection works and how to在本教程中,我将介绍如何SQL注入工程和如何use it to get some useful information.用它来获取一些有用的信息. First of all: What is SQL injection?首先:什么是S

实战:mysql统计指定架构的所有表的数据和索引大小情况

#统计指定架构的所有表的数据和索引大小情况 #tablesize.sh #!/bin/sh #[email protected] if [ "$#" -gt 2 ];then echo "**********************************" echo "too many input parameters" echo "**********************************" echo "

在CentOS上配置MySQL服务

#!/bin/sh # Copyright Abandoned 1996 TCX DataKonsult AB & Monty Program KB & Detron HB # This file is public domain and comes with NO WARRANTY of any kind # MySQL daemon start/stop script. # Usually this is put in /etc/init.d (at least on machines

MySQL抑制binlog日志中的BINLOG部分

MySQL通过binlog来记录整个数据的变更过程,因此我们只要有MySQL的binlog日志即可完整的还原数据库.MySQL binlog日志记录有3种不同的方式,即:STATEMENT,MIXED,ROW.对于不同的日志模式,生成的binlog有不同的记录方式.对于MIXED(部分SQL语句)和ROW模式是以base-64方式记录,会以BINLOG开头,是一段伪SQL,我们可以用使用base64-output参数来抑制其显示.本文对此给出了描述及演示. 有关mysqlbinlog的用法,请参

MySQL错误日志总结

MySQL错误日志是记录MySQL 运行过程中较为严重的警告和错误信息,以及MySQL每次启动和关闭的详细信息.错误日志的命名通常为hostname.err.其中,hostname表示服务器主机名. The error log contains information indicating when mysqld was started and stopped and also any critical errors that occur while the server is running.

nodejs+mysql 1

1.设置创建数据库 package.json { "name":"shopping-cart-example" ,"version":"0.0.1" ,"dependencies":{ "express":"4.10.6" ,"express-session":"1.9.3" ,"jade":"1.

MySQL 数据库常用命令小结

1.MySQL常用命令 create database name; 创建数据库 use databasename; 选择数据库 drop database name 直接删除数据库,不提醒 show tables; 显示表 describe tablename; 表的详细描述 select 中加上distinct去除重复字段 mysqladmin drop databasename 删除数据库前,有提示. 显示当前mysql版本和当前日期 select version(),current_dat

mysql基础密令总结,教你快速使用数据库(1)

1.显示数据服务器所有数据库 show databases; 2.创建数据库 create database if not exits +数据库名: 3.删除数据库 drop database +数据库名 4.使用默认数据库 use +数据库名: 5.创建数据表 create table if not exits +表名 ( 列名 + 列类型, 列名+列类型   (以逗号分割,最后一个不需要加逗号) ); 6.显示数据库下已经存在的表 show tables; (显示以x开头的表) show t