sql >> データベース >  >> RDS >> Mysql

Node.jsの同期mysql

    私は通常、このタイプの問題に対して以下のようなパターンを使用します。簡単に言うと、リストを取得してから、関数を呼び出してリストを処理します。その関数は、リストが完成するまで自分自身を呼び出します。アキュムレータに入るときに結果を収集します。リストが空の場合、コールバックを通じて蓄積したものをすべて返します。これは、@AndrewSidorovが彼の応答で示したことを達成するためのもう1つの方法です。

    //cb is (err, res) 
    function getData(cb){
      var querystr = "SELECT * FROM groups";
      var result = "";
    
      dbClient.query(querystr, function (err, res, fields) {
          if (err)
              cb(err);
          else {
            var groups = [];
            for (var ndx in res)
              groups = groups.concat(res[ndx].members.split(","));
    
            getMembers(groups, [], cb);
          }
      });
    }
    
    function getMembers(members, sofar, cb){
      var member = members.shift();
    
      if (!member)
        cb(null, sofar);
      else {
        var memberquery;
        var params;
    
        if (member.substr(0,1) == "@") {
            memberquery = "SELECT name FROM groups WHERE id = ?";
            params = [member.substr(1, member.length-1)];
        } else {
            memberquery = "SELECT username FROM users WHERE id = ?";
            params = [member];
        }
    
        dbClient.query(memberquery, params, function(err, res) {
          if (err)
            cb(err);
          else {
            var membername = "";
            if (typeof res[0].username == "undefined") {
                membername = "@" + res[0].name;
            } else {
                membername = res[0].username;
            }
    
            sofar.push(membername);
    
            getMembers(members, sofar, cb);
          }
        });
      }
    }
    


    1. 日付列のMySQL条件付きORDERBYASC / DESC

    2. SQL Server Management Studio(SSMS)でテーブルの行/レコードを編集する-SQLServerチュートリアル/TSQLチュートリアルパート18

    3. XAMPPMySQL-ft_min_word_lenの設定

    4. 相関サブクエリでMySQLの移動平均を計算するにはどうすればよいですか?