2017-06-21 15 views
0

私は通常、次のようにつかむ私のテーブル内のBINARYフィールドを持っている:KnexクエリでMySQL関数を実行するには?

SELECT HEX(users.id) AS id FROM users WHERE username = ? 

私は動的オブジェクトからWHERE句を生成できるようにする必要がありますので、私は最近Knexを使用し始めました。ここに私が試したものです:

select `HEX(users`.`id)` as `id` .... 

そして私はこの試みた::

knex('users').select('HEX(users.id) AS id)').where(filter); 

ここでそれが生成するクエリです

knex('users').select('HEX(`users`.`id`) AS id').where(filter); 

をそしてそれは、この思い付く:

select `HEX(``users```.```id``)` as `id` .... 

実行方法HEX()列名と間違えることなく?

答えて

1

knexは、識別子を引用符で囲むんしさせると、それは次のようになります。

knex('users').select(knex.raw('HEX(??) AS id', ['users.id'])).where(filter); 
1

解決策を見つけました。私はraw()機能を使用する必要があります。だから私のクエリビルダは、次のようになります。

knex('users').select(knex.raw('HEX(`users`.`id`) AS id')).where(filter); 
関連する問題