› 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
raycloud
V2EX  ›  MySQL

请教一个 MySQL 循环查询问题

  •  1
     
  •   raycloud · Aug 29, 2014 · 5315 views
    This topic created in 4436 days ago, the information mentioned may be changed or developed.
    假设有一张表t,有字段userid, price, uid
    现需要写一个函数,传入一个uid, 查出price,然后把查出来的这条记录userid当成uid继续查询,一直循环下去, 每次查出来的记录可能不止一条,需要把所有查出来的price相加,请问这个函数怎么写?
    语言表达能力一般,不知说清楚了没
    10 replies  •  2014-08-29 18:04:51 +08:00
    Livid
        1
    Livid  
    MOD
    PRO
       Aug 29, 2014
    停止条件是当 SELECT 返回 0 条结果么?
    zts1993
        2
    zts1993  
       Aug 29, 2014
    我还以为你要问SQL语句怎么写呢。。。那个,,终止条件是什么?

    //@return array userid
    getUsersByUID(int uid){}

    getPriceByUsers(array users){}

    getUsersByUsers(array users){}

    users=getUsersByUID(uid)
    price=0

    while(!empty(users)){
    price=getPriceByUsers(users)
    users=getUsersByUsers(users)
    }


    伪代码看着清楚,可能效率不是最高,但是应该挺好理解的
    不一定对啊。。求轻拍
    raycloud
        3
    raycloud  
    OP
       Aug 29, 2014
    @Livid 是的,没错
    raycloud
        4
    raycloud  
    OP
       Aug 29, 2014
    @zts1993 大哥,我需要的SQL函数,不是用程序写
    Livid
        5
    Livid  
    MOD
    PRO
       Aug 29, 2014
    @raycloud 单条 SQL 应该是做不到。除非用存储过程。
    raycloud
        6
    raycloud  
    OP
       Aug 29, 2014
    @Livid 嗯,对存储过程不太熟悉,可以给个简单例子不,用的是MySQL,^_^
    zts1993
        7
    zts1993  
       Aug 29, 2014
    @raycloud 存储过程
    qiayue
        8
    qiayue  
       Aug 29, 2014
    我觉得是否可以重新设计数据表结构呢,使得更易查询
    现有的数据可以通过程序转到新的结构
    raycloud
        9
    raycloud  
    OP
       Aug 29, 2014
    @qiayue 这个...我也这么想
    wangyongbo
        10
    wangyongbo  
       Aug 29, 2014
    @qiayue 有道理。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   3344 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 11:05 · PVG 19:05 · LAX 04:05 · JFK 07:05
    ♥ Do have faith in what you're doing.