{"id":13686734,"url":"https://github.com/fxjs-modules/sql-query","last_synced_at":"2025-05-01T09:32:32.626Z","repository":{"id":122982955,"uuid":"161721760","full_name":"fxjs-modules/sql-query","owner":"fxjs-modules","description":"fork version of node-sql-query, as one part of orm","archived":true,"fork":false,"pushed_at":"2019-10-24T08:05:02.000Z","size":127,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-01T06:02:25.808Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fxjs-modules.png","metadata":{"files":{"readme":"README.md","changelog":"History.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2018-12-14T02:35:42.000Z","updated_at":"2022-11-19T09:43:53.000Z","dependencies_parsed_at":"2023-03-11T01:00:20.602Z","dependency_job_id":null,"html_url":"https://github.com/fxjs-modules/sql-query","commit_stats":null,"previous_names":[],"tags_count":20,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fxjs-modules%2Fsql-query","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fxjs-modules%2Fsql-query/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fxjs-modules%2Fsql-query/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fxjs-modules%2Fsql-query/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fxjs-modules","download_url":"https://codeload.github.com/fxjs-modules/sql-query/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251852902,"owners_count":21654482,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-02T15:00:39.033Z","updated_at":"2025-05-01T09:32:32.350Z","avatar_url":"https://github.com/fxjs-modules.png","language":"JavaScript","funding_links":[],"categories":["Packages"],"sub_categories":["SQL"],"readme":"# Fibjs SQL query builder\n\n[![NPM version](https://img.shields.io/npm/v/@fxjs/sql-query.svg)](https://www.npmjs.org/package/@fxjs/sql-query)\n[![Build Status](https://travis-ci.org/fxjs-modules/sql-query.svg)](https://travis-ci.org/fxjs-modules/sql-query)\n[![Build status](https://ci.appveyor.com/api/projects/status/lg7ephk4a1mjdi0l/branch/master?svg=true)](https://ci.appveyor.com/project/richardo2016/sql-query/branch/master)\n\n\n**NOTICE**: This is [node-sql-query]'s fibjs version, thx a lot to [node-sql-query]'s author : )\n\n## Install\n\n```sh\nnpm install sql-query --save\n```\n\n## Dialects\n\n- MySQL\n- SQLite\n- MSSQL\n\n## About\n\nThis module is used by [@fxjs/orm](https://github.com/fxjs-modules/orm) to build SQL queries in the different supported dialects.\nSorry the API documentation is not complete. There are tests in `./test/integration` that you could read.\n\n\n# Usage\n```js\nvar sql = require('@fxjs/sql-query')\nvar sqlQuery = sql.Query(); // for dialect: sql.Query('mysql')\n```\n\n## Create\n```js\nvar sqlCreate = sqlQuery.create();\n\nsqlCreate\n  .table('table1')\n  .build()\n\n\"CREATE TABLE 'table1'()\"\n\n\nsqlCreate\n  .table('table1')\n  .field('id','id')\n  .build()\n\n\"CREATE TABLE 'table1'('id' INTEGER PRIMARY KEY AUTO_INCREMENT)\"\n\n\nsqlCreate\n  .table('table1')\n  .fields({id: 'id', a_text: 'text'})\n  .build()\n\n\"CREATE TABLE 'table1'('id' INTEGER PRIMARY KEY AUTO_INCREMENT,'a_text' TEXT)\"\n\n\nsqlCreate\n  .table('table1')\n  .fields({id: 'id', a_num: 'int'})\n  .build()\n\n\"CREATE TABLE 'table1'('id' INTEGER PRIMARY KEY AUTO_INCREMENT,'a_num' INTEGER)\"\n\n\nsqlCreate\n  .table('table1')\n  .fields({id: 'id', a_num: 'float'})\n  .build()\n\n\"CREATE TABLE 'table1'('id' INTEGER PRIMARY KEY AUTO_INCREMENT,'a_num' FLOAT(12,2))\"\n\n\nsqlCreate\n  .table('table1')\n  .fields({id: 'id', a_bool: 'bool'})\n  .build()\n\n\"CREATE TABLE 'table1'('id' INTEGER PRIMARY KEY AUTO_INCREMENT,'a_bool' TINYINT(1))\"\n```\n\n## Select\n```js\nvar sqlSelect = sqlQuery.select();\n\nsqlSelect\n  .from('table1')\n  .build();\n\n\"SELECT * FROM `table1`\"\n\n\nsqlSelect\n  .from('table1')\n  .select('id', 'name')\n  .build();\n\n\"SELECT `id`, `name` FROM `table1`\"\n\n\nsqlSelect\n  .from('table1')\n  .select('id', 'name')\n  .as('label')\n  .build();\n\n\"SELECT `id`, `name` AS `label` FROM `table1`\"\n\n\nsqlSelect\n  .from('table1')\n  .select('id', 'name')\n  .select('title')\n  .as('label')\n  .build();\n\n\"SELECT `id`, `name`, `title` AS `label` FROM `table1`\"\n\n\nsqlSelect\n  .from('table1')\n  .select('id', 'name')\n  .as('label')\n  .select('title')\n  .build();\n\n\"SELECT `id`, `name` AS `label`, `title` FROM `table1`\"\n\n\nsqlSelect\n  .from('table1')\n  .select([ 'id', 'name' ])\n  .build();\n\n\"SELECT `id`, `name` FROM `table1`\"\n\n\nsqlSelect\n  .from('table1')\n  .select()\n  .build();\n\n\"SELECT * FROM `table1`\"\n\n\nsqlSelect\n  .from('table1')\n  .select(['abc','def', { as: 'ghi', sql: 'SOMEFUNC(ghi)' }])\n  .build();\n\nsqlSelect\n  .from('table1')\n  .select(['abc','def', { a: 'ghi', sql: 'SOMEFUNC(ghi)' }])\n  .build();\n\n\"SELECT `abc`, `def`, (SOMEFUNC(ghi)) AS `ghi` FROM `table1`\"\n\n\nsqlSelect\n  .calculateFoundRows()\n  .from('table1')\n  .build();\n\n\"SELECT SQL_CALC_FOUND_ROWS * FROM `table1`\"\n\n\nsqlSelect\n  .calculateFoundRows()\n  .from('table1')\n  .select('id')\n  .build();\n\n\"SELECT SQL_CALC_FOUND_ROWS `id` FROM `table1`\"\n\n\nsqlSelect\n  .from('table1')\n  .select('id1', 'name')\n  .from('table2', 'id2', 'id1')\n  .select('id2')\n  .build();\n\n\"SELECT `t1`.`id1`, `t1`.`name`, `t2`.`id2` FROM `table1` `t1` JOIN `table2` `t2` ON `t2`.`id2` = `t1`.`id1`\"\n\n\nsqlSelect\n  .from('table1')\n  .select('id1')\n  .from('table2', 'id2', 'id1', { joinType: 'left inner' })\n  .select('id2')\n  .build();\n\n\"SELECT `t1`.`id1`, `t2`.`id2` FROM `table1` `t1` LEFT INNER JOIN `table2` `t2` ON `t2`.`id2` = `t1`.`id1`\"\n\n\nsqlSelect\n  .from('table1')\n  .select('id1', 'name')\n  .from('table2', 'id2', 'table1', 'id1')\n  .select('id2')\n  .build();\n\n\"SELECT `t1`.`id1`, `t1`.`name`, `t2`.`id2` FROM `table1` `t1` JOIN `table2` `t2` ON `t2`.`id2` = `t1`.`id1`\"\n\n\nsqlSelect\n  .from('table1')\n  .from('table2', 'id2', 'table1', 'id1')\n  .count()\n  .build();\n\n\"SELECT COUNT(*) FROM `table1` `t1` JOIN `table2` `t2` ON `t2`.`id2` = `t1`.`id1`\"\n\n\nsqlSelect\n  .from('table1')\n  .from('table2', 'id2', 'table1', 'id1')\n  .count(null, 'c')\n  .build();\n\n\"SELECT COUNT(*) AS `c` FROM `table1` `t1` JOIN `table2` `t2` ON `t2`.`id2` = `t1`.`id1`\"\n\n\nsqlSelect\n  .from('table1')\n  .from('table2', 'id2', 'table1', 'id1')\n  .count('id')\n  .build();\n\n\"SELECT COUNT(`t2`.`id`) FROM `table1` `t1` JOIN `table2` `t2` ON `t2`.`id2` = `t1`.`id1`\"\n\n\nsqlSelect\n  .from('table1')\n  .count('id')\n  .from('table2', 'id2', 'table1', 'id1')\n  .count('id')\n  .build();\n\n\"SELECT COUNT(`t1`.`id`), COUNT(`t2`.`id`) FROM `table1` `t1` JOIN `table2` `t2` ON `t2`.`id2` = `t1`.`id1`\"\n\n\nsqlSelect\n  .from('table1')\n  .from('table2', 'id2', 'table1', 'id1')\n  .count('id')\n  .count('col')\n  .build();\n\n\"SELECT COUNT(`t2`.`id`), COUNT(`t2`.`col`) FROM `table1` `t1` JOIN `table2` `t2` ON `t2`.`id2` = `t1`.`id1`\"\n\n\nsqlSelect\n  .from('table1')\n  .from('table2', 'id2', 'table1', 'id1')\n  .fun('AVG', 'col')\n  .build();\n\n\"SELECT AVG(`t2`.`col`) FROM `table1` `t1` JOIN `table2` `t2` ON `t2`.`id2` = `t1`.`id1`\"\n\n\nsqlSelect\n  .from('table1')\n  .from('table2',['id2a', 'id2b'], 'table1', ['id1a', 'id1b'])\n  .count('id')\n  .build();\n\n\"SELECT COUNT(`t2`.`id`) FROM `table1` `t1` JOIN `table2` `t2` ON `t2`.`id2a` = `t1`.`id1a` AND `t2`.`id2b` = `t1`.`id1b`\"\n```\n\n## Where\n```js\nvar sqlSelect = sqlQuery.select();\n\nsqlSelect\n  .from('table1')\n  .where()\n  .build();\n\n\"SELECT * FROM `table1`\"\n\n\nsqlSelect\n  .from('table1')\n  .where(null)\n  .build();\n\n\"SELECT * FROM `table1`\"\n\n\nsqlSelect\n  .from('table1')\n  .where({ col: 1 })\n  .build();\n\n\"SELECT * FROM `table1` WHERE `col` = 1\"\n\n\nsqlSelect\n  .from('table1')\n  .where({ col: 0 })\n  .build();\n\n\"SELECT * FROM `table1` WHERE `col` = 0\"\n\n\nsqlSelect\n  .from('table1')\n  .where({ col: null })\n  .build();\n\n\"SELECT * FROM `table1` WHERE `col` IS NULL\"\n\n\nsqlSelect\n  .from('table1')\n  .where({ col: sql.eq(null) })\n  .build();\n\n\"SELECT * FROM `table1` WHERE `col` IS NULL\"\n\n\nsqlSelect\n  .from('table1')\n  .where({ col: sql.ne(null) })\n  .build();\n\n\"SELECT * FROM `table1` WHERE `col` IS NOT NULL\"\n\n\nsqlSelect\n  .from('table1')\n  .where({ col: undefined })\n  .build();\n\n\"SELECT * FROM `table1` WHERE `col` IS NULL\"\n\n\nsqlSelect\n  .from('table1')\n  .where({ col: false })\n  .build();\n\n\"SELECT * FROM `table1` WHERE `col` = false\"\n\n\nsqlSelect\n  .from('table1')\n  .where({ col: \"\" })\n  .build();\n\n\"SELECT * FROM `table1` WHERE `col` = ''\"\n\n\nsqlSelect\n  .from('table1')\n  .where({ col: true })\n  .build();\n\n\"SELECT * FROM `table1` WHERE `col` = true\"\n\n\nsqlSelect\n  .from('table1')\n  .where({ col: 'a' })\n  .build();\n\n\"SELECT * FROM `table1` WHERE `col` = 'a'\"\n\n\nsqlSelect\n  .from('table1')\n  .where({ col: 'a\\'' })\n  .build();\n\n\"SELECT * FROM `table1` WHERE `col` = 'a\\\\''\"\n\n\nsqlSelect\n  .from('table1')\n  .where({ col: [ 1, 2, 3 ] })\n  .build();\n\n\"SELECT * FROM `table1` WHERE `col` IN (1, 2, 3)\"\n\n\nsqlSelect\n  .from('table1')\n  .where({ col: [] })\n  .build();\n\n\"SELECT * FROM `table1` WHERE FALSE\"\n\n\nsqlSelect\n  .from('table1')\n  .where({ col1: 1, col2: 2 })\n  .build();\n\n\"SELECT * FROM `table1` WHERE `col1` = 1 AND `col2` = 2\"\n\n\nsqlSelect\n  .from('table1')\n  .where({ col1: 1 }, { col2: 2 })\n  .build();\n\n\"SELECT * FROM `table1` WHERE (`col1` = 1) AND (`col2` = 2)\"\n\n\nsqlSelect\n  .from('table1')\n  .where({ col: 1 }).where({ col: 2 })\n  .build();\n\n\"SELECT * FROM `table1` WHERE (`col` = 1) AND (`col` = 2)\"\n\n\nsqlSelect\n  .from('table1')\n  .where({ col1: 1, col2: 2 }).where({ col3: 3 })\n  .build();\n\n\"SELECT * FROM `table1` WHERE (`col1` = 1 AND `col2` = 2) AND (`col3` = 3)\"\n\n\nsqlSelect\n  .from('table1')\n  .from('table2', 'id', 'id')\n  .where('table1', { col: 1 }, 'table2', { col: 2 })\n  .build();\n\n\"SELECT * FROM `table1` `t1` JOIN `table2` `t2` ON `t2`.`id` = `t1`.`id` WHERE (`t1`.`col` = 1) AND (`t2`.`col` = 2)\"\n\n\nsqlSelect\n  .from('table1')\n  .from('table2', 'id', 'id')\n  .where('table1', { col: 1 }, { col: 2 })\n  .build();\n\n\"SELECT * FROM `table1` `t1` JOIN `table2` `t2` ON `t2`.`id` = `t1`.`id` WHERE (`t1`.`col` = 1) AND (`col` = 2)\"\n\n\nsqlSelect\n  .from('table1')\n  .where({ col: sql.gt(1) })\n  .build();\n\n\"SELECT * FROM `table1` WHERE `col` \u003e 1\"\n\n\nsqlSelect\n  .from('table1')\n  .where({ col: sql.gte(1) })\n  .build();\n\n\"SELECT * FROM `table1` WHERE `col` \u003e= 1\"\n\n\nsqlSelect\n  .from('table1')\n  .where({ col: sql.lt(1) })\n  .build();\n\n\"SELECT * FROM `table1` WHERE `col` \u003c 1\"\n\n\nsqlSelect\n  .from('table1')\n  .where({ col: sql.lte(1) })\n  .build();\n\n\"SELECT * FROM `table1` WHERE `col` \u003c= 1\"\n\n\nsqlSelect\n  .from('table1')\n  .where({ col: sql.eq(1) })\n  .build();\n\n\"SELECT * FROM `table1` WHERE `col` = 1\"\n\n\nsqlSelect\n  .from('table1')\n  .where({ col: sql.ne(1) })\n  .build();\n\n\"SELECT * FROM `table1` WHERE `col` \u003c\u003e 1\"\n\n\nsqlSelect\n  .from('table1')\n  .where({ col: sql.between('a', 'b') })\n  .build();\n\n\"SELECT * FROM `table1` WHERE `col` BETWEEN 'a' AND 'b'\"\n\n\nsqlSelect\n  .from('table1')\n  .where({ col: sql.not_between('a', 'b') })\n  .build();\n\n\"SELECT * FROM `table1` WHERE `col` NOT BETWEEN 'a' AND 'b'\"\n\n\nsqlSelect\n  .from('table1')\n  .where({ col: sql.like('abc') })\n  .build();\n\n\"SELECT * FROM `table1` WHERE `col` LIKE 'abc'\"\n\n\nsqlSelect\n  .from('table1')\n  .where({ col:\n  sql.not_like('abc') })\n  .build();\n\n\"SELECT * FROM `table1` WHERE `col` NOT LIKE 'abc'\"\n\n\nsqlSelect\n  .from('table1')\n  .where({ col: sql.not_in([ 1, 2, 3 ]) })\n  .build();\n\n\"SELECT * FROM `table1` WHERE `col` NOT IN (1, 2, 3)\"\n\n\nsqlSelect\n  .from('table1')\n  .where({ col: {\n\t  not_in: ([ 1, 2, 3 ])\n  })\n  .build();\n\n\"SELECT * FROM `table1` WHERE `col` NOT IN (1, 2, 3)\"\n\n\nsqlSelect\n  .from('table1')\n  .where({ col: {\n\t  \tbetween: [\n\t\t\t\"2019-03-06T00:00:16.000Z\",\n\t\t\t\"2019-03-06T00:09:16.000Z\",\n\t\t]\n  })\n  .build();\n\n\"SELECT * FROM `table1` WHERE `col` BETWEEN ('2019-03-06T00:00:16.000Z', '2019-03-06T00:09:16.000Z')\"\nor\n// timezone = 'locale' or Dialect.type === `mysql`\n\"SELECT * FROM `table1` WHERE `col` BETWEEN ('2019-03-06 T00:00:16.000', '2019-03-06 00:09:16.000')\"\n\n\nsqlSelect\n  .from('table1')\n  .where({ __sql: [[\"LOWER(`stuff`) LIKE 'peaches'\"]] })\n  .build();\n\n\"SELECT * FROM `table1` WHERE LOWER(`stuff`) LIKE 'peaches'\"\n\n\nsqlSelect\n  .from('table1')\n  .where({ __sql: [[\"LOWER(`stuff`) LIKE ?\", ['peaches']]] })\n  .build();\n\n\"SELECT * FROM `table1` WHERE LOWER(`stuff`) LIKE 'peaches'\"\n\n\nsqlSelect\n  .from('table1')\n  .where({ __sql: [[\"LOWER(`stuff`) LIKE ? AND `number` \u003e ?\", ['peaches', 12]]] })\n  .build();\n\n\"SELECT * FROM `table1` WHERE LOWER(`stuff`) LIKE 'peaches' AND `number` \u003e 12\"\n\n\nsqlSelect\n  .from('table1')\n  .where({ __sql: [[\"LOWER(`stuff`) LIKE ? AND `number` == ?\", ['peaches']]] })\n  .build();\n\n\"SELECT * FROM `table1` WHERE LOWER(`stuff`) LIKE 'peaches' AND `number` == NULL\"\n```\n\n## Order\n```js\nvar sqlSelect = sqlQuery.select();\n\nsqlSelect\n  .from('table1')\n  .order('col')\n  .build();\n\n\"SELECT * FROM `table1` ORDER BY `col` ASC\"\n\n\nsqlSelect\n  .from('table1')\n  .order('col', 'A')\n  .build();\n\n\"SELECT * FROM `table1` ORDER BY `col` ASC\"\n\n\nsqlSelect\n  .from('table1')\n  .order('col', 'Z')\n  .build();\n\n\"SELECT * FROM `table1` ORDER BY `col` DESC\"\n\n\nsqlSelect\n  .from('table1')\n  .order('col').order('col2', 'Z')\n  .build();\n\n\"SELECT * FROM `table1` ORDER BY `col` ASC, `col2` DESC\"\n\n\nsqlSelect\n  .from('table1')\n  .order('col', [])\n  .build();\n\n\"SELECT * FROM `table1` ORDER BY col\"\n\n\nsqlSelect\n  .from('table1')\n  .order('?? DESC', ['col'])\n  .build();\n\n\"SELECT * FROM `table1` ORDER BY `col` DESC\"\n\n\nsqlSelect\n  .from('table1')\n  .order('ST_Distance(??, ST_GeomFromText(?,4326))', ['geopoint', 'POINT(-68.3394 27.5578)'])\n  .build();\n\n\"SELECT * FROM `table1` ORDER BY ST_Distance(`geopoint`, ST_GeomFromText('POINT(-68.3394 27.5578)',4326))\"\n```\n\n## Limit\n\n```js\nvar sqlSelect = sqlQuery.select();\n\nsqlSelect\n  .from('table1')\n  .limit(123)\n  .build();\n\n\"SELECT * FROM `table1` LIMIT 123\"\n\n\nsqlSelect\n  .from('table1')\n  .limit('123456789')\n  .build();\n\n\"SELECT * FROM `table1` LIMIT 123456789\"\n```\n\n## Select function\n\n```js\nvar sqlSelect = sqlQuery.select();\n\nsqlSelect\n  .from('table1')\n  .fun('myfun', 'col1')\n  .build();\n\n\"SELECT MYFUN(`col1`) FROM `table1`\"\n\n\nsqlSelect\n  .from('table1')\n  .fun('myfun', [ 'col1', 'col2'])\n  .build();\n\n\"SELECT MYFUN(`col1`, `col2`) FROM `table1`\"\n\n\nsqlSelect\n  .from('table1')\n  .fun('dbo.fnBalance', [ 80, null, null], 'balance')\n  .build();\n\n\"SELECT DBO.FNBALANCE(80, NULL, NULL) AS `balance` FROM `table1`\"\n\n\nsqlSelect\n  .from('table1')\n  .fun('myfun', [ 'col1', 'col2'], 'alias')\n  .build();\n\n\"SELECT MYFUN(`col1`, `col2`) AS `alias` FROM `table1`\"\n\n\nsqlSelect\n  .from('table1')\n  .fun('myfun', [ 'col1', sqlQuery.Text('col2') ], 'alias')\n  .build();\n\n\"SELECT MYFUN(`col1`, 'col2') AS `alias` FROM `table1`\"\n```\n\n## Insert\n\n```js\nvar sqlInsert = sqlQuery.insert();\n\nsqlInsert\n  .into('table1')\n  .build();\n\n\"INSERT INTO `table1`\"\n\n\nsqlInsert\n  .into('table1')\n  .set({})\n  .build();\n\n\"INSERT INTO `table1` VALUES()\"\n\n\nsqlInsert\n  .into('table1')\n  .set({ col: 1 })\n  .build();\n\n\"INSERT INTO `table1` (`col`) VALUES (1)\"\n\n\nsqlInsert\n  .into('table1')\n  .set({ col1: 1, col2: 'a' })\n  .build();\n\n\"INSERT INTO `table1` (`col1`, `col2`) VALUES (1, 'a')\"\n```\n\n## Update\n\n```js\nvar sqlUpdate = sqlQuery.update()\n\nsqlUpdate\n  .into('table1')\n  .build();\n\n\"UPDATE `table1`\"\n\n\nsqlUpdate\n  .into('table1')\n  .set({ col: 1 })\n  .build();\n\n\"UPDATE `table1` SET `col` = 1\"\n\n\nsqlUpdate\n  .into('table1')\n  .set({ col1: 1, col2: 2 })\n  .build();\n\n\"UPDATE `table1` SET `col1` = 1, `col2` = 2\"\n\n\nsqlUpdate\n  .into('table1')\n  .set({ col1: 1, col2: 2 }).where({ id: 3 })\n  .build();\n\n\"UPDATE `table1` SET `col1` = 1, `col2` = 2 WHERE `id` = 3\"\n```\n\n[node-sql-query]:./Readme_orig.md\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffxjs-modules%2Fsql-query","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffxjs-modules%2Fsql-query","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffxjs-modules%2Fsql-query/lists"}