https://github.com/unicreators/sql-criteria-parser
javascript sql criteria expression parser.
https://github.com/unicreators/sql-criteria-parser
javascript sql-parser
Last synced: 3 months ago
JSON representation
javascript sql criteria expression parser.
- Host: GitHub
- URL: https://github.com/unicreators/sql-criteria-parser
- Owner: unicreators
- License: mit
- Created: 2017-04-17T07:13:45.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2017-04-22T03:17:26.000Z (over 8 years ago)
- Last Synced: 2023-08-24T07:15:25.299Z (over 2 years ago)
- Topics: javascript, sql-parser
- Language: JavaScript
- Size: 3.91 KB
- Stars: 5
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## SqlCriteriaParser
一个可以将 javascript 对象表达式转换为 T-SQL 条件语句的转换器。
```js
let e = {
'$or': {
'$or': {
'name': {
'$or': { '$=': 'yichen', '$endsWith': 'a' }
},
'age': { '$>': 10, '$<': 22 }
},
'gender': 1,
'level': [1, 2, 3],
'size': { '$in': [18, 19] }
}
};
let { segment, values } = sqlCriteriaParser.parse(e);
console.log(segment);
// (((name = ?) OR (name LIKE ?)) OR ((age > ?) AND (age < ?))) OR (gender = ?) OR (level IN (?)) OR (size IN (?))
console.log(values);
// ['yichen', '%a', 10, 22, 1, [1, 2, 3], [18, 19]]
```
## Install
```sh
$ npm install sql-criteria-parser
```
## Usage
```js
const SqlCriteriaParser = require('sql-criteria-parser');
let parser = new SqlCriteriaParser('?');
let e = { '$or': { 'name': 'yichen', 'age': 22 } };
let { segment, values } = parser.parse(e);
console.log(segment);
// '(name = ?) OR (age = ?)'
console.log(values);
// ['yichen', 22]
```
## Operator
- `$=` to `=`
- `$>` to `>`
- `$<` to `<`
- `$>=` to `>=`
- `$<=` to `<=`
- `$<>` to `<>`
- `$startsWith` to `LIKE`
- `$endsWith` to `LIKE`
- `$contains` to `LIKE`
- `$in` to `IN`
- `$and` to `AND`
- `$or` to `OR`
### License
[MIT](LICENSE)