# Laminas Db Select

**URL:** <https://discourse.laminas.dev/t/laminas-db-select/1790>\
**Category:** Components & MVC\
**Tags:** laminas-db\
**Created:** [August 20, 2020, 9:37am UTC](https://discourse.laminas.dev/t/laminas-db-select/1790 "2020-08-20T09:37:08Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Andy](https://avatars.discourse-cdn.com/v4/letter/a/aeb1de/32.png) [@Andy](https://discourse.laminas.dev/u/Andy)\
**Post date:** [August 20, 2020, 9:37am UTC](https://discourse.laminas.dev/t/laminas-db-select/1790/1 "2020-08-20T09:37:08Z")

</div>

Hello Experts 🙂

I am looking for a possibilty to use mysql regex in ‘SELECT’ statement.

Example 5.7: SELECT username regexp ‘Name[0-9]{0,5}’ FROM users  
Example 8: SELECT REGEXP\_LIKE( username, ‘Name[0-9]{0,5}’) from users ( or RLIKE)

It is important for ‘UNIQUE’ constraint and new usernames.

Greeting 🙂

---

<div class="post-metadata">

**Author:** ![simon-mundy](https://yyz2.discourse-cdn.com/flex032/user_avatar/discourse.laminas.dev/simon-mundy/32/648_2.png) [@simon-mundy](https://discourse.laminas.dev/u/simon-mundy)\
**Post date:** [August 21, 2020, 8:32am UTC](https://discourse.laminas.dev/t/laminas-db-select/1790/2 "2020-08-21T08:32:57Z")

</div>

Yeah it’s easy enough:-

```auto
use Laminas\Db\Sql\Sql;
use Laminas\Db\Sql\Expression as Expression;

$dbAdapter = null // An instance of your database adapter

$sql = new Sql($dbAdapter);

$select = $sql->select()
    ->from('users')
    ->columns([
        'match' => new Expression('REGEXP_LIKE(username, "Name[0-9]{0,5}")')
    ]);

$results = $dbAdapter->query(
    $sql->buildSqlString($select),
    $dbAdapter::QUERY_MODE_EXECUTE
);

```

That will build a SQL statement of

```auto
SELECT REGEXP_LIKE(username, ‘Name[0-9]{0,5}’) as `match` from `users`

```

---

<div class="post-metadata">

**Author:** ![Andy](https://avatars.discourse-cdn.com/v4/letter/a/aeb1de/32.png) [@Andy](https://discourse.laminas.dev/u/Andy)\
**Post date:** [August 21, 2020, 8:35am UTC](https://discourse.laminas.dev/t/laminas-db-select/1790/3 "2020-08-21T08:35:32Z")

</div>

great!  
thank you so much 🙂

@btw: and for 5.7 or is it the same way?

---

<div class="post-metadata">

**Author:** ![simon-mundy](https://yyz2.discourse-cdn.com/flex032/user_avatar/discourse.laminas.dev/simon-mundy/32/648_2.png) [@simon-mundy](https://discourse.laminas.dev/u/simon-mundy)\
**Post date:** [August 21, 2020, 8:52am UTC](https://discourse.laminas.dev/t/laminas-db-select/1790/4 "2020-08-21T08:52:03Z")

</div>

You could just substitute the following for MySQL 5.7:

```auto
$select = $sql->select()
    ->from('users')
    ->columns([
        'match' => new Expression('username REGEXP "Name[0-9]{0,5}"')
    ]);

```
