uuuing
V2EX  ›  问与答

MYSQL 数据对比问题求助,回复的都有感谢~

  •  
  •   uuuing · Dec 2, 2016 · 1915 views
    This topic created in 3626 days ago, the information mentioned may be changed or developed.

    想要实现 两个表中的字段对比

    • 想实现 user 表中的 port 字段 跟 port_num 表中的 port 字段对比, 如果一致 那么 更改 state 为 1

    但是下面的代码有点问题。

    $sql = "SELECT port FROM `user` WHERE port > 1000  ORDER BY `user`.`port`  ASC";
    $result = mysql_query($sql);
    
    
    while($fetch = mysql_fetch_assoc($result)){
        $port1 = $fetch['port'];
    
        $sql = "UPDATE `port_num` SET `state` = 1 WHERE `port`='{$port1}'";
        $result = mysql_query($sql);
        if(!$result){
            echo 'ERROR MYSQL';
        }
    
    7 replies  •  2016-12-03 13:35:40 +08:00
    Sunyanzi
    Sunyanzi
    Dec 2, 2016❤️2
    1
    一条 SQL 可以搞定的事情为什么要这么麻烦 ..?

    UPDATE `port_num` SET `state`=1 WHRE `port` IN ( SELECT `port` FROM `user` WHERE `port` > 1000 )

    以及 ... [粗]我说过多少次不要用 MySQL 扩展了![/粗] ... 趁着还不晚赶快去习惯 Prepare / Execute ...
    ebony0319
    ebony0319
    Dec 2, 2016 via Android❤️1
    2
    update p set SET `state`=1 from `user` WHERE `port` > 1000
    ebony0319
    ebony0319
    Dec 2, 2016 via Android❤️1
    3
    抱歉。没有看到上面的那个条件。
    update p set SET `state`=1 from 'user` as u inner
    join 'port_num' pn on u.port= pn.port WHERE u.port> 1000
    bdbai
    bdbai
    Dec 2, 2016 via Android❤️1
    4
    @Sunyanzi lz 最不能饶恕的是用 mysql 而不是 mysqli😂
    uuuing
    uuuing
    OP
    Dec 2, 2016
    5
    @Sunyanzi 很感谢不过你少写了几个字母

    WHERE :)
    zhs227
    zhs227
    Dec 2, 2016
    6
    mysql 扩展已经差不多停止支持了,使用 mysqli 会比 mysql 更好一点。
    Sunyanzi
    Sunyanzi
    Dec 3, 2016
    7
    @uuuing 我的错我的错 ... 因为昨天实在时间不够 ... 我直接快速手打完就发了也没试没检查 ...

    被抓了现行好尴尬 ... 我下次一定注意 ...
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1627 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 04:49 · PVG 12:49 · LAX 20:49 · JFK 23:49
    ♥ Do have faith in what you're doing.