PHPackages                             moitran/package-presto-query-builder-php - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Database &amp; ORM](/categories/database)
4. /
5. moitran/package-presto-query-builder-php

ActivePackage[Database &amp; ORM](/categories/database)

moitran/package-presto-query-builder-php
========================================

Build presto query string

v1.3(7y ago)35901MITPHPPHP ^7.1

Since Aug 17Pushed 7y ago1 watchersCompare

[ Source](https://github.com/moitran/package-presto-query-builder-php)[ Packagist](https://packagist.org/packages/moitran/package-presto-query-builder-php)[ RSS](/packages/moitran-package-presto-query-builder-php/feed)WikiDiscussions master Synced 5d ago

READMEChangelog (4)Dependencies (4)Versions (6)Used By (0)

Presto Query Builder
====================

[](#presto-query-builder)

This package provides a set of classes and methods that is able to programmatically build presto queries.

[![Latest Stable Version](https://camo.githubusercontent.com/c1fa2a02dd710a2cc3c5cfa0a2358e6f25c155903abc30c3a1843866e444b4bb/68747470733a2f2f706f7365722e707567782e6f72672f6d6f697472616e2f7061636b6167652d70726573746f2d71756572792d6275696c6465722d7068702f762f737461626c65)](https://packagist.org/packages/moitran/package-presto-query-builder-php)[![Latest Unstable Version](https://camo.githubusercontent.com/212b31e3e07e0e4aad733a59ab758165c6cce36afd9fcc1c09a3481d683bb37c/68747470733a2f2f706f7365722e707567782e6f72672f6d6f697472616e2f7061636b6167652d70726573746f2d71756572792d6275696c6465722d7068702f762f756e737461626c65)](https://packagist.org/packages/moitran/package-presto-query-builder-php)[![Build Status](https://camo.githubusercontent.com/c010c292ae6de2569936c752d4c46e31c80e7b279e3f18476ca349dc2f71a22b/68747470733a2f2f7472617669732d63692e6f72672f6d6f697472616e2f7061636b6167652d70726573746f2d71756572792d6275696c6465722d7068702e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/moitran/package-presto-query-builder-php)[![codecov](https://camo.githubusercontent.com/8aeb727b2891049622f7ab6ad50a3ac4e5adb002d5c5ba670c3cab6c872d8d8c/68747470733a2f2f636f6465636f762e696f2f67682f6d6f697472616e2f7061636b6167652d70726573746f2d71756572792d6275696c6465722d7068702f6272616e63682f6d61737465722f6772617068732f62616467652e737667)](https://codecov.io/gh/moitran/package-presto-query-builder-php)[![License](https://camo.githubusercontent.com/3c19cc0b0584ba768eec0e5f72efd95f84c6c76670aaa51a888b997f4b41ab4f/68747470733a2f2f706f7365722e707567782e6f72672f6d6f697472616e2f7061636b6167652d70726573746f2d71756572792d6275696c6465722d7068702f6c6963656e7365)](https://packagist.org/packages/moitran/package-presto-query-builder-php)[![composer.lock](https://camo.githubusercontent.com/2eafd0206fec3621da0f3149dab74ca3ea8c0083296d445bab8198e9b1cb96fb/68747470733a2f2f706f7365722e707567782e6f72672f6d6f697472616e2f7061636b6167652d70726573746f2d71756572792d6275696c6465722d7068702f636f6d706f7365726c6f636b)](https://packagist.org/packages/moitran/package-presto-query-builder-php)

- [Installation](#installation)
- [Usage](#usage)
- [Testing](#testing)
- [Contributing](#contributing)
- [License](#license)

Installation
------------

[](#installation)

```
$ composer require moitran/package-presto-query-builder
```

Usage
-----

[](#usage)

Some examples:

1. ```
        $query = new MoiTran\PrestoQueryBuilder\Query();
        $queryStr = $query->select('*')
           ->from('table1')
           ->whereAnd('col1', 'IS', NULL)
           ->whereAnd('col2', '=', 'value2')
           ->whereOr('col3', 'LIKE', '%test%')
           ->orderBy('col1', 'DESC')
           ->orderBy('col2', 'ASC')
           ->limit(10)
           ->getQueryStr();
    ```

    Output:

    ```
       SELECT * FROM (table1) WHERE col1 IS NULL AND col2 = 'value2' OR col3 LIKE '%test%' ORDER BY col1 DESC, col2 ASC LIMIT 10
    ```
2. ```
        $whereAndGroup = new MoiTran\PrestoQueryBuilder\WhereGroup();
        $whereAndGroup->whereAnd('col4', '!=', 'value4');
        $whereAndGroup->whereOr('col5', 'NOT LIKE', 'value5%');

        $whereOrGroup = new MoiTran\PrestoQueryBuilder\WhereGroup();
        $whereOrGroup->whereAnd('col6', '=', 'value6');
        $whereOrGroup->whereOr('col7', 'IN', ['value7', 'value8']);

        $query = new MoiTran\PrestoQueryBuilder\Query();
        $queryStr = $query->select([
            'col1',
            'col2' => 'colalias2',
            'col3' => 'colalias3'
        ])
            ->from('table1')
            ->whereAnd('col1', 'IS', NULL)
            ->whereAnd('col2', '=', 'value2')
            ->whereOr('col3', 'LIKE', '%test%')
            ->whereAndGroup($whereAndGroup)
            ->whereOrGroup($whereOrGroup)
            ->groupBy(['col1', 'col2', 'col3'])
            ->orderBy('col1', 'DESC')
            ->orderBy('col2', 'ASC')
            ->limit(10)
            ->getQueryStr();
    ```

    Output:

    ```
       SELECT col1,
              col2 AS colalias2,
              col3 AS colalias3
       FROM (table1)
       WHERE col1 IS NULL
         AND col2 = 'value2'
         OR col3 LIKE '%test%'
         AND (col4 != 'value4'
              OR col5 NOT LIKE 'value5%')
         OR (col6 = 'value6'
             OR col7 IN ('value7',
                         'value8'))
       GROUP BY col1,
                col2,
                col3
       ORDER BY col1 DESC,
                col2 ASC
       LIMIT 10
    ```
3. ```
        $query = new MoiTran\PrestoQueryBuilder\Query();
        $queryStr = $query->select([
            'a.col1' => 'acol1',
            'a.col2' => 'acol2',
            'b.col1' => 'bcol1',
            'b.col2' => 'bcol2',
        ])
            ->from('table1', 'a')
            ->leftJoin('table2', 'b')
            ->on('a.id', '=', 'b.a_id')
            ->whereAnd('a.col1', '=', 'value1')
            ->limit(10)
            ->getQueryStr();
    ```

    Output:

    ```
       SELECT a.col1 AS acol1,
              a.col2 AS acol2,
              b.col1 AS bcol1,
              b.col2 AS bcol2
       FROM (table1) AS a
       LEFT JOIN (table2) AS b ON a.id = b.a_id
       WHERE a.col1 = 'value1'
       LIMIT 10
    ```

Testing
-------

[](#testing)

```
$ vendor/bin/phpunit --coverage-html=cov/ tests/
```

Contributing
------------

[](#contributing)

- [Moi Tran](https://github.com/moitran)

License
-------

[](#license)

This package is under [MIT License](https://github.com/moitran/package-presto-query-builder-php/blob/master/LICENSE)

###  Health Score

30

—

LowBetter than 64% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity17

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity61

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~40 days

Total

4

Last Release

2706d ago

PHP version history (2 changes)V1.0PHP &gt;=5.4.0

v1.1PHP ^7.1

### Community

Maintainers

![](https://www.gravatar.com/avatar/dee371c7b72c4eb898e9b9cf7f5c70f6948a3659445373c4f74a6ea1990dc25c?d=identicon)[moitran](/maintainers/moitran)

---

Top Contributors

[![moitran](https://avatars.githubusercontent.com/u/30226535?v=4)](https://github.com/moitran "moitran (28 commits)")

---

Tags

prestopresto-queryquerysql

###  Code Quality

TestsPHPUnit

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/moitran-package-presto-query-builder-php/health.svg)

```
[![Health](https://phpackages.com/badges/moitran-package-presto-query-builder-php/health.svg)](https://phpackages.com/packages/moitran-package-presto-query-builder-php)
```

###  Alternatives

[doctrine/orm

Object-Relational-Mapper for PHP

10.2k285.3M6.2k](/packages/doctrine-orm)[jdorn/sql-formatter

a PHP SQL highlighting library

3.9k115.1M102](/packages/jdorn-sql-formatter)[illuminate/database

The Illuminate Database package.

2.8k52.4M9.4k](/packages/illuminate-database)[mongodb/mongodb

MongoDB driver library

1.6k64.0M546](/packages/mongodb-mongodb)[ramsey/uuid-doctrine

Use ramsey/uuid as a Doctrine field type.

90340.3M211](/packages/ramsey-uuid-doctrine)[reliese/laravel

Reliese Components for Laravel Framework code generation.

1.7k3.4M16](/packages/reliese-laravel)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
