目前分類:SQL (2)

瀏覽方式: 標題列表 簡短摘要

  mysql ot exists = not in或exists= in讲解

        关于如何理解 not exists 的好比喻 not exists = not in;exists= in

        简单的理解就是 not exists = not in;exists= in

        但这只是简单的理解而已,其里面的执行机制和细微处还是有一定的差别!

        以下是从网络上摘录下的文章:

        SQL里的EXISTS与in、not exists与not in 效率比较和使用

        在 MSSQL 中,插入(insert)一条记录很简单,但是一些特殊应用,在插入记录前,需要检查这条记录是否已经存在,只有当记录不存在时才执行插入操作,本文介绍的就是这个问题的解决方案。

        问题: 我创建了一个表来存放客户信息,我知道可以用 insert 语句插入信息到表中,但是怎么样才能保证不会插入重复的记录呢?

        答案: 可以通过使用 EXISTS 条件句防止插入重复记录。

        示例一:插入多条记录

        假设有一个主键为 client_id 的 clients 表,可以使用下面的语句:

        Code:

        INSERT INTO clients
        (client_id, client_name, client_type)
        SELECT supplier_id, supplier_name, 'advertising'
        FROM suppliers
        WHERE not exists (select * from clients
        where clients.client_id = suppliers.supplier_id);

         

        个人批注:not exists不存在,也就是说后面的括号中只要返回了数据那么这个条件就不存在了,可以理解为括号前的not

        exists是一个左表达式 ,括号后的查询是一个右表达式,只有当右表达式返回的也是not exists(即后面的查询出来的结果是非空的)时,等式才成立。3

 

 

 

 

本文地址:http://www.php186.com/content/article/mysql/25717.html(转载请保留)

 

戮克 發表在 痞客邦 留言(0) 人氣()

今天在使用 phpmyadmin 操作 mysql 變更 root 密碼的時候出現的這個訊息

Table ‘mysql.servers’ doesn’t exist

原來是在 mysql 這個資料庫少了 servers 這個 table, 沒關係, 手動增加就可以了, 按照底下的指令在 mysql 這個資料庫增加吧


CREATE TABLE `servers` (
`Server_name` char(64) NOT NULL,
`Host` char(64) NOT NULL,
`Db` char(64) NOT NULL,
`Username` char(64) NOT NULL,
`Password` char(64) NOT NULL,

戮克 發表在 痞客邦 留言(0) 人氣()