Tag: sql

编写SQL查询可能适用于不同的RDBMS?

我正在编写一个应用程序来访问数据库服务。 应用程序应devise与理想的市场中的任何RDBMS一起工作。 例如, MySQL , MS SQL Server , Firebird , SQLite , MS Access或更多。 它不应该绑定到一个特定的RDBMS。 但是,一个stringtypes的SQL可能适用于某些RDBMS,但是对于其他types的则失败。 SQL的一个小的变体应该被做为特定的RDBMS。 从语法语法,数据types,连接语法和DML ( Data Manipulation Language, CREATE TABLE, CREATE INDEX and etc. )。 在应用程序中为不同的RDBMS提供不同版本的SQL并不容易。 是否有某种现成的解决scheme来生成适合不同RDBMS的SQL查询? 也许一些可以在运行时呈现SQL文本的库/类取决于RDBMS连接。

knex.js将null转换为NaN

我有一个对象: var record = { foo: null, bar: 42 } 我想插入一个到表中: console.log(db('foos_and_bars').insert(record).toString()); // insert into "foos_and_bars" ("foo", "bar") values ('NaN', 42) 我的领域允许为空,所以我不期望knex执行这样的东西。 这可能是什么原因? 我之前多次插入null-s,并没有达到这种情况。 UPD:我已经添加了toString()来确保查询的外观。 经常运行我 – 接收错误: 错误:插入到“foos_and_bars”(“foo”,“bar”)值($ 1,$ 2) – 整数的无效input语法:“NaN”

节点MSSQL – 如何使用内置的SQL注入保护

我正在查看MSSQL模块中针对Node的内置SQL注入保护: https://www.npmjs.com/package/mssql#injection 但是我并不完全明白如何为我的查询清理值。 我猜request.input('myval', sql.VarChar, '– commented')语句清理“myvar”对查询的其余部分被注释掉。 如果我想对其他东西进行消毒呢? 如drop table语句等 任何人都可以帮我吗?

(单个SQL查询)vs(单个SQL查询和循环数据)哪一个更好?

我有一个要求从SQL数据库中获取用户给出的项目列表的数据。 例如,如果用户上传包含1000个item ID的.csv文件,那么通过item_id创build1000个SQL查询将是更好的select? 或者在一个单一的SQL查询中获取整个数据库表数据,并循环这些数据将是一个更好的select?

链接应用程序与数据库

我试图用我的数据库连接我的应用程序使用mysql库。 这是我的代码: //Require Libraries const mysql = require('mysql'); //Set up MySql connection const connection = mysql.createConnection({ host : "255.255.255.255", //that ain't actually the ip 😛 port : "3306", user : "root", password : "password :P", database : "db_name" }); connection.connect(); //Connect to the database 代码给出的错误是: events.js:182 throw er; // Unhandled 'error' event ^ Error: connect […]

如何检查表是否包含任何行时传递表名称作为参数?

我试图写一个语句来检查一个表是否包含行: SELECT COUNT(*) FROM $1 ; 如果认为我会把表名传入:$ 1 我收到以下错误信息: 在“$ 1”处或附近的语法错误 我的发言有什么错误?

任何使用LISTEN&NOTIFY(或NodeJS)实时监控Postgresql查询更改的方法?

所以我有一个自定义Postgresql查询,检索指定的经度纬度半径内的所有行,如下所示: SELECT *, earth_distance(ll_to_earth($1,$2), ll_to_earth(lat, lng)) as distance_metres FROM RoomsWithUsers WHERE earth_box(ll_to_earth($1,$2), $3) @> ll_to_earth(lat, lng) ORDER by distance_metres; 在我的节点服务器中,我希望能够在每次查询中的行数发生变化时得到通知。 我已经研究过使用诸如pg-live-query之类的节点库,但是我更愿意使用与现有的Postgres LISTEN / NOTIFY一起工作的pg-pubsub,以避免不必要的开销。 不过,据我所知,PostgreSQL TRIGGERs只能在UPDATE / INSERT / DELETE操作上工作,而不是在任何特定的查询上。 有什么办法来完成我在做什么?

是否支持虚拟字段在select像SQL一样

在SQL中,我可以使用'status'虚拟字段来创build以下SELECT语句: SELECT CASE WHEN field = 1 THEN 'sale' ELSE 'none' END as status 有没有像mongoose?

使用Node.js将简单的表从SQL转换为Redis

对于node.js / javascript和redis,我还是比较新的,所以如果这个问题很简单,请和我一起。 假设我有一个SQL表,它包含一个名为userid(唯一,主键,自动增量),用户名(varchar)和密码(Varchar)的字段。 现在假设我想在Redis中重新创build这个表。 根据我的理解,最好为这个表使用“散列”。 因此我的node.js代码有一个创build用户的函数: function newUser(username,password) { //incr the userid client.incr("userid",redis.print); //Creating the user client.get('userid',function(err,userid){ client.hmset("users", "id",userid,"name",username,"password",password); }); } 它是否正确? 另外,我如何访问存储在他的哈希中的信息? 我尝试以下,但只能返回1行: client.hgetall('users',function(err,user){ console.log('User Name: ' + user.name +" password = "+user.password); }) 最后,我将如何join2个哈希(就像我需要join的2个表一样)? 谢谢

如何在sql中使用连接来获得所需的结果

我有2个表orc_users和orc_files。 现在我想从orc_files表中获取相关用户的文件我已经尝试这个查询: – use orc select * from orc_users as T1 INNER JOIN orc_files AS t2 on T1.id = t2.userid where T1.email='sdfsdf'; 我得到了这个结果: 但我想要的logging像这样: user={name:"sad", phone:"asdasda", files:[{filename:"dfsdfs",size:12,fileid:"sdfs"}, {filename:"dfsdfs",size:12,fileid:"sdfs"}]} 我用MySQL的node.js,所以它给我的结果数组。 请帮帮我。 提前致谢。