1.2.1 • Published 4 years ago

sql-where-builder v1.2.1

Weekly downloads
7
License
MIT
Repository
-
Last release
4 years ago

SQL Where Builder

License: MIT

A library to build SQL WHERE statements from object.

Install

npm install sql-where-builder

Usage

const sqlWhereBuilder = require('sql-where-builder')

sqlWhereBuilder({ test: 1, name: 'package' })
// {
//   statement: '`test` = ? AND `name` = ?',
//   parameters: [1, 'package']
// }

Run tests

npm run test

Examples

Basic Example

const sqlWhereBuilder = require('sql-where-builder')

var where = sqlWhereBuilder({ test: 1, name: 'package' })
// {
//   statement: '`test` = ? AND `name` = ?',
//   parameters: [1, 'package']
// }

Or Queries

sqlWhereBuilder({ $or: { status: 'completed', dispatched: true }})
// {
//   statement: '`status` = ? OR `dispatched` = ?',
//   parameters: ['completed', true]
// }

Other comparasions

This requires object with type key as a value.

sqlWhereBuilder({
    status: {
        type: 'neq',
        value: 'completed'
    }
})
// {
//   statement: '`status` != ?',
//   parameters: ['completed']
// }

Available types

typeresult (needed variables)Notes
eq= valueUsed by default if object value is string not object
neq!= value
gt> value
gte>= value
lt< value
lte<= value
inIN(value)value must be array. Used by default if value is array not object
ninNOT IN(value)value must be array
betweenBEWTEEN from AND to
likeLIKE value
nlikeNOT LIKE value
nullIS NULL
notnullIS NOT NULL
sqlWhereBuilder({
    price: {
        type: 'between',
        from: 10,
        to: 100
    }
})
// {
//   statement: '`price` BETWEEN ? AND ?',
//   parameters: [10, 100]
// }

Options

Alias

There is an option to prepend all object keys with defined alias. Keys that have a dot already in the name won't get alias

sqlWhereBuilder({
  status: 1,
  'otherAlias.test': 'other'
}, {
  alias: 'alias',
})
// {
//   statement: '`alias`.`price` = ? AND `otherAlias`.`test` = ?',
//   parameters: [1, 'other']
// }
1.2.1

4 years ago

1.2.0

4 years ago

1.1.0

4 years ago

1.0.2

4 years ago

1.0.0

4 years ago