MySQL 5.5 Community Server
MySQL 5.6 Community Server
Percona Configuration Wizard
XtraBackup 搭建主从复制
Great Sites on MySQL
Percona
MySQL Performance Blog
Severalnines
推荐管理工具
Sequel Pro
phpMyAdmin
推荐书目
MySQL Cookbook
MySQL 相关项目
MariaDB
Drizzle
参考文档
http://mysql-python.sourceforge.net/MySQLdb.html
sytnishizuiai
V2EX  ›  MySQL

MySQL 语句问题,请问有没有简便的写法

  •  
  •   sytnishizuiai · Sep 17, 2019 · 5211 views
    This topic created in 2467 days ago, the information mentioned may be changed or developed.

    https://s2.ax1x.com/2019/09/17/n5qvKx.png (顺便请教下如何发图,找到的发图帖子,教程图片失效了)

    我想查询同个 area 下,freight_1,freight_2,freight_3 各自的最小值及其 id。 3 条 sql 去获取很简单,但这个查询本身包含在 foreach 内(循环最大不超过 5 次),所以我想一条 sql 就查出,有这种办法吗?

    8 replies    2019-09-17 22:47:15 +08:00
    F281M6Dh8DXpD1g2
        1
    F281M6Dh8DXpD1g2  
       Sep 17, 2019
    最小值好办,用 mysql 没办法一条获取到 id,gg
    sytnishizuiai
        2
    sytnishizuiai  
    OP
       Sep 17, 2019
    @liprais 嗯 但是分 3 条拿的话,就是 5*3,一共 15 条 sql 了,有点多
    l00t
        3
    l00t  
       Sep 17, 2019   ❤️ 2
    就算是三条 sql,用 union all 拼一下也就是一条了,这也叫个事?
    JunoNin
        4
    JunoNin  
       Sep 17, 2019 via Android
    取三个字段里各自的最小值一条 SQL 没办法,发图可以用图床上传链接
    sytnishizuiai
        5
    sytnishizuiai  
    OP
       Sep 17, 2019
    @l00t 谢谢,没想到这方法
    sytnishizuiai
        6
    sytnishizuiai  
    OP
       Sep 17, 2019
    @JunoNin 我用的图传,不知道怎么上传。。。
    okhowang
        7
    okhowang  
       Sep 17, 2019   ❤️ 2
    select id,area,freght1 from table1 where freight_1 = (select min(freight_1) from table1 table2 where table2.area = table1.area)
    x3
    这样只用 3 条
    union 可以拿到 但程序还得处理才能知道哪些列是最小的
    如果不需要处理 直接 union 也可以
    sytnishizuiai
        8
    sytnishizuiai  
    OP
       Sep 17, 2019
    我直接 order by freight_1 limint 1 union all *3,代码更少点
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2442 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 01:59 · PVG 09:59 · LAX 18:59 · JFK 21:59
    ♥ Do have faith in what you're doing.