Tag: sql

如何通过客户端库(Postgres)在SQL查询中传递元组(不是数组)作为WHERE约束参数?

我已经经验地发现,PostgreSQL可以让你创build'元组'(术语,我不知道他们叫什么)在WHERE中定义一个多列条件: update T set x=true where (a_id, b_id) IN ((3428, 3544), (3450, 3542)); 这似乎正是我所希望的: x更新在哪里a_id =元组中的第一项AND b_id =元组中的第二项。 这接近于有用,但为了真正重要,我必须能够将这些“元组”设置为来自客户端库的参数; 特别是在这种情况下的node-pg 。 是否有可能将$ 1绑定到以下查询中的某些内容,例如$ 1是0个或更多对a_id和b_id ? client.query("UPDATE t SET x=true WHERE (a_id, b_id) IN $1"), […?]) 如果没有,我至less可以这样做 client.query("UPDATE t SET x=true WHERE (a_id, b_id) IN ($1, $2, …$N)", [ a1b1, a1b2, …aNbN ]) ?

在数据库中获取基于id的快速js url路由

我有包含articleID和articleDescription的文章表的sqlite数据库。 我正在使用expressjs作为服务器: app.get('/articleDetail/:id',function(req,res){ res.sendFile(path.join(__dirname+'/articleDetail.html')); var id = req.params.id; var query = "select * from article where articleID = " + id; }); 我想在数据库中显示基于其id的文章内容。 例如:当您在主页上select第5条时,会将您带到url…. / articleDetail / 5,并向用户显示内容。 我有两个问题的总结:我如何连接和我的数据库中的ID到url/路线的ID? 我如何使用express来显示正确的文章内容? 谢谢你的帮助。

CoffeeScript,寻找类似于SQL的模块

我试图让CoffeeScript允许SQL语句以及它的正常语法。 这需要一个体面的SQLite / MySQL / SimilarDB模块添加到CoffeeScript,以允许我对语法做出的改变。 任何人都知道任何我需要的模块吗? 我已经把这个鬼混了,发现了以下(破碎的)解决scheme: https://github.com/orlandov/node-sqlite https://github.com/grumdrig/node-sqlite http://coffeescriptcookbook.com/chapters/databases/sqlite 如果您发表评论,请确定您所指的WORKS模块。 有很多旧的模块不再适用于最新的NodeJS版本。 以下github项目是我从中分离出来的项目,正在尝试修改。 https://github.com/jashkenas/coffee-script 谢谢!

逻辑search字段数据库select问题

这是一个有点复杂但很简单的问题。 我正在创build一个允许在一个对象上存储的小应用程序,该对象有一个标题,描述,标记和子对象。 主题包含评论。 什么是使用search字段来查找这些对象中的任何匹配的理想方式。 例如对象1 {id:1,title:test,description:fun,tags:[{games,toys}]}子对象1 {lid:1,评论:'这很有趣也很快'} 说我search:快乐的乐趣。 或者我search:testing 我想任何这些返回相同的对象。 我知道我将不得不通过空格或逗号分解variables,并创build一个数组,但我应该如何构buildSQL。 我不是要创build一个复杂的页面排名algrothim,如果我必须限制search标题或标签或描述我会这样做。 注意:这是一个简单的应用程序,即时通讯只是寻找select。

node-sqlite3序列化失败:SQLITE_CONSTRAINT:外键约束失败

在Express.js中,我正在尝试使用两个查询的序列化,其中第二个依赖于第一个: 我正在尝试使用第一个查询来获取entryID 我为第二个查询使用该entryID 据我所知,第二个查询是在第一个查询完成之前调用的。 还有“console.log(”我的入口:“+ data.entryID);” 返回正确的entryID。 下面我显示了我正在使用的代码以及我得到的错误。 任何帮助,将不胜感激。 db.serialize(function(){ db.get("Select entryID from entry where pID=$pID",{$pID:participName},function(err, data){ if(err) throw err; foundID=data.entryID; console.log("My entry: "+data.entryID); }); db.run("insert into observation(entryID, objID, data) values($entryID,1,$intro_counter)", {$entryID:foundID, $intro_counter:intro_counter}); }); events.js:71 throw arguments[1]; // Unhandled 'error' event ^ Error: SQLITE_CONSTRAINT: foreign key constraint failed

LIKE子句问题

我正在开发一个小型移动networking应用程序。 我有一个LIKE子句的查询。 例如: SELECT from posts WHERE (title LIKE '%car%') or (content LIKE '%car%'); 我遇到的问题是JavaScript中的variables有单引号围绕它们的值。 所以我得到以下几点: SELECT from posts WHERE (title LIKE '%'car'%') or (content LIKE '%'car'%'); 实际的string我这样build设: "SELECT from posts WHERE (title LIKE '%" + client.escape(input) + "%') or (content LIKE '%" + client.escape(input) + "%');"

如何devise一个链式Model.find()函数?

我正在尝试在Node.js中编写ORM 我想声明一个名为Model的类,它将被用来声明一个数据对象,如: Users = new Model(someModelRules); newUser = new Users(userInfomation); 数据模型User有一个名为find()的函数。 现在,我想使find()链接,如: Users.find(" name = 'John' ") .orderedBy("age").desc() .limit(0,10) 或者只是简单地find : Users.find(" name = 'John' ") 为了编写这个find函数,我相信我必须先构buildSQL,然后在find链的末尾执行SQL查询。 我不知道该怎么做,所有我能想到的就是添加一个函数,如: doQuery() ,所以当doQuery()函数时,我将知道是时候执行SQL查询了,如: Users.find(" name = 'John' ") .orderedBy("age").desc() .limit(0,10) .doQuery(); 我知道这是一个简单的解决scheme,但我不想额外的doQuery()函数。 🙁 那么,我该如何devise呢? 如果你能给我看一些带有注释的例子代码,那真是太好了。 谢谢! (抱歉我的英文不好) PS。 我知道ORM2有一个查找function,我只是想,但我想知道如何编码,我几乎无法理解ORM2中的代码,因为没有评论。 (我不会用orm2) =================================解决scheme================ ============== 受@bfavaretto启发: function User() { this.find = […]

传递SQL Server连接(节点到C#)

我目前正在使用Node.js服务器。 这个服务器使用Edge.js来执行我的C#工作stream程代码(这是一个dll)。 我们正在使用一个自定义的书面日志loggingDLL日志到SQL Server表。 Node.js和我的工作streamdll使用这个日志dlllogging到SQL数据库的步骤。 理想情况下,只需要打开与SQL数据库的连接一次,然后将其用于Node和Edge / c#代码。 有没有办法在Node.js代码中打开连接,然后将连接句柄传递给Edge / C#。 还是有更好的方法来做到这一点? 目前,我只是打开连接,当我打电话给我的C#工作streamDLL,然后在最后closures它。 在Node中这样做会导致一些问题(假设由于asynchronous代码)“System.InvalidOperationException:ExecuteNonQuery需要一个开放的可用Connection,连接的当前状态是打开的。”

在node-mysql中报告SQL语法错误,查询在Sequel Pro中运行良好

我有一个使用Sequel Proinput时会完美运行的查询,但是当我尝试使用node-mysql库导入时,会出现语法错误。 我不认为这是一个与node-mysql的问题,但对于我的生活,我无法弄清楚语法错误会在哪里。 错误如下: Error: ER_PARSE_ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INSERT INTO `units` VALUES ('N', '30', '0.00146', '22108.05', '1460.00'), ('N'' at line 10 这里是查询: CREATE TABLE IF NOT EXISTS `units` ( `section` VARCHAR(255) NOT […]

如何从未知的对象属性获得价值?

我有一个从对象中提取值的问题。 我想检查我的SQL表是否有问题行: var checkRow = function(connection,chekedColumn,chekParam, checkVal){ connection.query('SELECT EXISTS(SELECT '+ chekedColumn +' FROM asterisk.users where ' +chekParam+'='+checkVal+')', function (err, rows) { if(err) console.log('SQL suerry error') else { console.log(rows[0]); // output: { 'EXISTS(SELECT id FROM asterisk.users where name=1600)': 1 } return (rows[0]); }; }); }; 但是从查询返回的值是一个对象,并且return(rows[0])只给出[object object]输出。 我怎样才能提取这个对象的价值?