Sql và foreach



  • Cho em hỏi làm sao để thay thế lần lược giá trị trong foreach vào chuỗi lệnh sql ạ:

    var xx = "SELECT * FROM user_info WHERE id = ? OR id = ? OR id = ?" ;
    json.forEach(e => {
    
    }

  • Global Moderator

    @Tú-Đc Ý tưởng có thể làm như thế này:

    var json = [1, 2, 3];
    var query = "SELECT * FROM user_info WHERE 1 = 2";
    var cond = json.reduce((con, e) => con + ` OR id = ${e}`, '');
    
    var fullQuery = query + cond;
    console.log(fullQuery);
    

    Demo: https://jsfiddle.net/vunb/xuj9x407/3/

    Câu hỏi là sao bạn không dùng IN mà dùng OR ?? Nếu chuyển sang dùng IN thì bạn có thể làm tương tự như trên nhé.



  • Hồi đầu cũng dùng OR :)). Về sau toàn IN.

    Sent from Rodgers Zone!!!

    1


  • Chỉ giúp em dùng in như thế nào luôn ạ @@



  • @Tú-Đc WHERE column_name IN (value1, value2, ...);
    Vầy thôi e. Kiểu như e có id id1 id2 id3 đi ha. Thì cái này nó match những thằng có status trong cái list id bạn truyền vào thôi. Nếu dùng OR thì có case khi nào pattern như not dễ sử dụng hơn :3. Còn truyền query cứ In nó hợp với design restful đó. Mình thì tuổi k lớn lắm. Nên gọi bạn được rồi.

    Sent from Rodgers Zone!!!

    1


  • @Nguyen-Hien À e hiểu rồi. thank anh


Log in to reply