Articles of mysql

从一个表中获取所有行的列表,满足两个不同表中的多个条件

我有4个表格 – employee , company , employee_company company和action 。 employee_company包含employee_id和company_id ,其中action包含employee_id 。 或者, employee_company对employee和company都有一个外键,而对employee有一个外键。 我试图想出一个方法来获取属于拥有多名员工的公司的所有员工的列表,并且该公司的任何员工都没有在action表中的条目。 我使用sequelize.js作为orm,所以无论是原始SQL还是通过sequelize实现的一些方法都是有帮助的。

使用node.js将数据插入到mysql中,但脚本挂起

我有这个脚本来读取文件,然后将数据插入到MySQL表中。 该脚本的作品,但它挂起,所以我不得不按CTRL-C停止脚本。 但脚本应该正常停止,我必须改变什么? var fs = require('fs'); var filename; var myGID; filename = "data/insertUser1_next.json"; function get_line(filename, line_no, callback) { fs.readFile(filename, function (err, data) { if (err) throw err; // Data is a buffer that we need to convert to a string // Improvement: loop over the buffer and stop when the line is reached var […]

Bookshelf.js – hasOne关系不好

我对bookshelf.js相当陌生,所以请耐心等待。 由于我正在学习,我正在使用MySQL,并有一个非常简单的结构。 即,两个实体,一个辅助键。 这是我的结构: CREATE TABLE IF NOT EXISTS `city` ( `city_id` int(11) NOT NULL, `code` int(11) NOT NULL, `name` varchar(255) COLLATE utf8_bin NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin; CREATE TABLE IF NOT EXISTS `people` ( `people_id` int(11) NOT NULL, `city_id` int(11) NOT NULL, `name` varchar(255) COLLATE utf8_bin NOT NULL, `age` int(11) NOT NULL […]

如何在相同的查询中使用AND和OR运算符进行后续处理?

我执行下面的查询,但我给错误。 我想结束我发布的SQL查询的结果。 userServiceAppointmentModel.findAll({ where: { technician_id: resultsFromAuthentication.technician_id, is_confirmed_by_user: 1, $or: { service_start_time: { gte: curLocalDate }, service_running_status: 1 } }, attributes: attributes }).complete(function (err, appointmentResponse) { if (err) { console.log(err); } SELECT `id`, `technician_id`, `user_id`, `service_id`, `service_name`, `service_location_string`, `service_location_latitude`, `service_location_longitude`, `service_start_time`, `service_end_time`, `notes`, `total_cost`, `service_cost`, `is_confirmed_by_user`, `is_confirmed_by_technician`, `service_running_status`, `service_start_time_by_technician`,`service_complete_time_by_technician` FROM `user_service_appointment` AS `user_service_appointment` WHERE `user_service_appointment`.`technician_id`=154 […]

如何在node.js中设置mysql连接,以使用无符号整数运算出范围错误?

我正在使用node.js和Mysql2 lib,这似乎与node-mysql lib有关。 我有一个无符号的整数字段在MySQL数据库,我正在更新通过增加或减less,如下所述: 在我的testing用户user_id 123456有1000奶酪(无符号) 下面的SQL语句返回没有错误将字段设置为最大值减1(Yikes!) 'UPDATE users SET user_cheese = user_cheese – 1001 WHERE user_id = 123456'; 以下准备好的语句和值也不会导致错误,并将字段设置为0 'UPDATE users SET user_cheese = user_cheese – ? WHERE user_id = ?'; preparedVars = [1001, 123456]; 当我使用phpBB的mysqli dbal在php中运行这些语句时,出现超出范围的错误,并且字段保持不变。 无论如何,我可以在node.js中复制所述行为吗?

MariaDB 10.0与SphinxSE

我有一个关于将Sphinx与MariaDB 10.0集成的问题。 数据库与SphinxSE存储引擎打包在一起,但我无法find有关如何设置的详细信息。 考虑以下情况: 我有一个使用数据库的图书销售应用程序,具有下列表格:“书”,“列表”和“学校”。 “列表”包含与单个书籍和单个学校的关系。 一本“书”包含几列,最重要的是“标题”和“作者”。 我想使用Sphinx在“Book”表上进行全文search,典型的查询可能会像这样(在伪SQL中):“查找所有标题包含string”Harry P“的书,目前在哈佛大学上市“。 根据MariaDB的文章 :“你需要创build一个特殊的ENGINE = SPHINX'search表',然后使用全文查询进行SELECT …” – 这意味着Sphinx根本无法访问/索引现有的MariaDB表? 我必须重新创build我的“书”表作为SphinxSE表? 如果是这种情况,我该如何指定这个表和我的其他非Sphinx表(列表,学校等)之间的关系? 上面的文章给出了一个非常简单的JOIN示例,但是我仍然感到困惑。 如果所有的“书籍”都存储在狮身人面像表中,MariaDB可以访问这个表格以查询不同types的查询(不需要全文search)? 作为一个相关的问题,使狮身人面像能够为书的标题和作者编制索引的好方法是什么? 该应用程序将始终指定哪个字段被查询。 任何帮助将不胜感激,因为几个小时的search和阅读仍然在这个话题上大部分在黑暗中。

继续保存与之相关的多个对象

我不知道该怎么称呼这个问题,但这是我的设置: var AcademyModule = sequelize.define('academy_module', { academy_id: { type: DataTypes.INTEGER, primaryKey: true }, module_id: { type: DataTypes.INTEGER, primaryKey: true }, module_module_type_id: DataTypes.INTEGER, sort_number: DataTypes.INTEGER, requirements_id: DataTypes.INTEGER }, {freezeTableName: true,} 通过以下assosiation : Requirements = sequelize.define('requirements', { id: DataTypes.INTEGER, value: DataTypes.STRING, requirement_type_id: DataTypes.INTEGER }, {freezeTableName: true}); AcademyModule.belongsTo(Requirements, {foreignKey: 'requirements_id'}); 现在,你可以从我的表设置看到,我将不得不保存在requirements表中的一行,然后使用插入的id插入到academy_module表。 为此,我创build了以下内容: add: function (requirements,academyModule,onSuccess, onError) { var […]

雅虎财务查询速度

我目前正在研究一个项目,涉及查询许多不同的股票代码的雅虎金融。 瓶颈在于从雅虎那里获取数据,所以我想知道是否有办法加快这一速度。 如果我使用多台机器来查询,然后汇总数据,会有帮助吗? 我只有一台物理机器, 我该怎么做呢? 谢谢! 编辑:目前,我正在使用Node.js,雅虎财务和Q.deferred要求雅虎的历史数据。 然后,一旦所有的承诺都兑现(对于每个股票),我正在做一个Q.all()来坚持数据。 var data = []; tickers = ["goog", "aapl", …]; … Q.all(_.map(tickers, function(symbol) { return getYahooPromise(symbol); })) .done( function() { persistData(data) }); getYahooPromise检索股票代码的数据并将其推入数据数组中。 一旦所有的承诺都解决了,数据就会保存在MySQL数据库中。 第二次编辑:更多代码: var sequentialCalls = []; for ( var i = 0; i < tickers.length / chunkSize; i++ ) { sequentialCalls.push( persistYahooChunk ); } sequentialCalls.push( […]

使用Sails.js查询MySql表

我是Sails.js的新手。 我遵循了大部分文档,但无法从MySql数据库中检索简单的数据。 当我在浏览器中运行路由器时 – http:// localhost:1337 / getAllChoices ,浏览器似乎挂起。 我在浏览器控制台中也看不到任何错误。 在我的模型文件夹中,我有一个Multiplechoice.js module.exports = { attributes: { multiplechoiceid: { type: 'integer'}, description: { type: 'string'} }, getAllChoices: function(){ return this.description ; } } 我的route.js包含这个:'get / allchoices':'HomeController.GetAllChoices' 我的HomeController包含这个:getallchoices:function(req,res){return MultipleChoice.getAllChoices(); } 我错过了什么吗? 谢谢。

Mysql查询在Node.js调度程序作业中抛出ECONNREFUSED

我正在尝试使用node-schedule和node-mysql模块构build一个带有节点(v0.10.33)的调度器。 代码如下: var schedule = require('node-schedule'); var mysql = require('mysql'); var rule = new schedule.RecurrenceRule(); rule.second = 59; schedule.scheduleJob(rule, function(){ var connection = db.connect(); console.log('Successfully established database connection.'); var resultSet = db.select(connection, 'SELECT * from notifications'); db.disconnect(connection); }); var db = { connect: function(){ var connection = mysql.createConnection({ host : 'localhost', user : 'scheduler', password […]