Tag: MySQL

MySQL自动增量列跳转10-为什么?

我有一个表中,我创build一个对象ID作为一个Int或Bigint,在这两种情况下,他们似乎自动增加10(即,第一次插入是对象ID 1,第二次是对象ID 11,第三对象ID 21等)。 两个问题: 为什么这样做? 那是问题吗?

从MySQL中select最后N行

我想从列名为id的主键的 MySQL数据库中select最后50行。 目标是行应按照ASC顺序的IDsorting,这就是为什么这个查询不起作用 SELECT * FROM `table` ORDER BY id DESC LIMIT 50; 另外,显着的是行可以被操纵(删除),这就是为什么下面的查询不工作 SELECT * FROM `table` WHERE id > ((SELECT MAX(id) FROM chat) – 50) ORDER BY id ASC; 问题 :如何从MySQL数据库中检索最后N行可以被操纵并按照ASC顺序?

先按特定字段值sorting

我有一个3列的表: id | name | priority ——————– 1 | core | 10 2 | core | 9 3 | other | 8 4 | board | 7 5 | board | 6 6 | core | 4 我想要使​​用prioritysorting结果集,但是首先那些具有name=core行,即使优先级较低。 结果应该是这样的 id | name | priority ——————– 6 | core | 4 2 | core | 9 […]

将多个子行组合成一行MYSQL

在此先感谢,我似乎无法得到它! 我有两张桌子 Ordered_Item ID | 项目名 1 | 比萨 2 | 斯特龙博利 Ordered_Options Ordered_Item_ID | Option_Number | 值 1 43​​意大利辣香肠 1 44额外的奶酪 2 44额外的奶酪 我正在寻找输出是一个MySQL查询是这样的效果 产量 ID | Item_Name | Option_1 | Option_2 1个比萨辣香肠多余的奶酪 2 Stromboli零额外的奶酪 我已经尝试了多数选项最后在语法错误,我已经尝试了group_concat,但多数民众赞成但不是真正的我在找什么。 我认为可能是一个开始,下面有一个粗略的例子。 我需要每次select相同的顺序。 而在收集信息的程序中,没有办法可靠地确保将会发生。 是否可以根据选项号码进行连接? 另外我知道,我永远不会有超过5个选项,所以一个静态的解决scheme将工作 Select Ordered_Items.ID, Ordered_Items.Item_Name, FROM Ordered_Items JOIN (SELECT Ordered_Options.Value FROM Ordered_Options Where Option_Number = […]

来自Sql数据库的简单随机样本

如何在SQL中进行高效的简单随机样本? 有问题的数据库正在运行MySQL; 我的桌子至less有20万行,我想要一个简单的约10,000个随机样本。 “明显的”答案是: SELECT * FROM table ORDER BY RAND() LIMIT 10000 对于大型表来说,这太慢了:它为每一行调用RAND()(它已经把它放在O(n)),并对它们进行sorting,最好使它成为O(n lg n)。 有没有办法比O(n)更快地做到这一点? 注意 :正如Andrew Mao在注释中指出的那样,如果您在SQL Server上使用这种方法,则应该使用T-SQL函数NEWID(),因为RAND() 可能会为所有行返回相同的值 。 编辑:5年后 我再次遇到了一个更大的表,并最终使用@愚昧的解决scheme版本,有两个调整: 将行以2-5倍我所需的样本大小进行采样,以便宜的方式ORDER BY RAND() 将RAND()的结果保存到每个插入/更新的索引列中。 (如果你的数据集不是非常重要的,你可能需要find另一种方法来保持这个列的新鲜。) 要获取1000个表格的样本,我对这些行进行计数,并将结果平均采样到frozen_rand列的平均值10,000行: SELECT COUNT(*) FROM table; — Use this to determine rand_low and rand_high SELECT * FROM table WHERE frozen_rand BETWEEN %(rand_low)s AND %(rand_high)s ORDER BY […]

nodejs mysql错误:连接丢失服务器closures了连接

当我使用节点mysql时,在12:00到2:00之间出现TCP连接被服务器closures的错误。 这是完整的信息: Error: Connection lost: The server closed the connection. at Protocol.end (/opt/node-v0.10.20-linux-x64/IM/node_modules/mysql/lib/protocol/Protocol.js:73:13) at Socket.onend (stream.js:79:10) at Socket.EventEmitter.emit (events.js:117:20) at _stream_readable.js:920:16 at process._tickCallback (node.js:415:13) 有解决scheme 。 但是,我这样试后,问题也出现了。 现在我不知道该怎么办。 有没有人遇到这个问题? 这是我写的方式遵循的解决scheme: var handleKFDisconnect = function() { kfdb.on('error', function(err) { if (!err.fatal) { return; } if (err.code !== 'PROTOCOL_CONNECTION_LOST') { console.log("PROTOCOL_CONNECTION_LOST"); throw err; } log.error("The database is […]

mysql_real_escape_string()是否完全防止SQL注入?

在http://www.justinshattuck.com/2007/01/18/mysql-injection-cheat-sheet/?akst_action=share-这个 ,有一个部分声称你可以绕过mysql_real_escape_string与某些亚洲字符编码 用BIG5或GBK绕过mysql_real_escape_string() “注射串” に关する追加情报: 上述字符是中国Big5 这是真的吗? 如果是这样,如果你没有准备好的陈述,你将如何保护你的网站?

INSERT INTO …从重复键更新select…

我正在做一个插入查询,如果一个唯一的密钥已经存在,其中大多数列需要更新到新的值。 它是这样的: INSERT INTO lee(exp_id, created_by, location, animal, starttime, endtime, entct, inact, inadur, inadist, smlct, smldur, smldist, larct, lardur, lardist, emptyct, emptydur) SELECT id, uid, t.location, t.animal, t.starttime, t.endtime, t.entct, t.inact, t.inadur, t.inadist, t.smlct, t.smldur, t.smldist, t.larct, t.lardur, t.lardist, t.emptyct, t.emptydur FROM tmp t WHERE uid=x ON DUPLICATE KEY UPDATE …; //update all fields to […]

如何在mysql中获得下一个自动递增的id

如何获取MySQL中的下一个ID将其插入到表中 INSERT INTO payments (date, item, method, payment_code) VALUES (NOW(), '1 Month', 'paypal', CONCAT("sahf4d2fdd45", id))

MySQL结果以逗号分隔列表

我需要运行一个查询,如: SELECT p.id, p.name, (SELECT name FROM sites s WHERE s.id = p.site_id) AS site_list FROM publications p 但我希望子select返回一个逗号分隔列表,而不是一列数据。 这甚至是可能的,如果是这样,怎么样?