我想拿一个数据库说,1000个用户,然后选择20个随机的(ORDER BY rand(),LIMIT 20)然后按名称排序结果集.我想出了这是下面的查询不工作像我希望的.
SELECT * FROM users WHERE 1 ORDER BY rand(), name ASC LIMIT 20
public class ClassA
{
public string MyString {get; set;}
}
public class ClassB
{
public List<ClassA> MyObjects {get; set;}
}
List<ClassB> classBList = new List<ClassB>();
var results = (from i in classBList select i.MyObjects).Distinct();
Run Code Online (Sandbox Code Playgroud)
我想要一个不同的所有ClassA对象列表classBList.我如何使用LINQ解决这个问题?我正在考虑嵌套查询,但无法弄明白.非常感谢任何帮助.
我有一个像这样的列的表,例如:
id,col1,col2,col3,col4
Run Code Online (Sandbox Code Playgroud)
现在,我想检查ANY的col1, col2, col3, col4价值已经传入.
要做的很长的路要走..
SELECT * FROM table WHERE (col1 = 123 OR col2 = 123 OR col3 = 123 OR col4 = 123);
Run Code Online (Sandbox Code Playgroud)
我想这是相反的版本IN.
有没有更简单的方法来做我想要的?
快问,我有下表
+-------------+---------------------+
| total | o_date |
+-------------+---------------------+
| 35 | 01-11-2009 19:32:44 |
| 41.5 | 01-12-2009 22:33:49 |
| 61.5 | 01-23-2009 22:08:24 |
| 66 | 02-01-2009 22:33:57 |
| 22.22 | 02-01-2009 22:37:34 |
| 29.84 | 04-20-2009 15:23:49 |
+-------------+---------------------+
Run Code Online (Sandbox Code Playgroud)
我想将每个月的总数加起来并按月分组.所以例如Jan-> 138 Feb-> 88.2 Apr-> 29.84
关于它的任何线索.谢谢
在我们的生产数据库中,我们运行以下每小时运行的伪代码SQL批处理查询:
INSERT INTO TemporaryTable
(SELECT FROM HighlyContentiousTableInInnoDb
WHERE allKindsOfComplexConditions are true)
Run Code Online (Sandbox Code Playgroud)
现在这个查询本身并不需要很快,但我注意到它是锁定的HighlyContentiousTableInInnoDb,即使它只是从它读取.其他一些非常简单的查询需要大约25秒(这是其他查询需要多长时间).
然后我发现在这种情况下InnoDB表实际上是被SELECT锁定的!http://www.mysqlperformanceblog.com/2006/07/12/insert-into-select-performance-with-innodb-tables/
但我真的不喜欢选择OUTFILE的文章中的解决方案,它似乎是一个黑客(文件系统上的临时文件看起来很糟糕).还有其他想法吗?有没有办法制作InnoDB表的完整副本,而不会在复制过程中以这种方式锁定它.然后我可以将其复制HighlyContentiousTable到另一个表并在那里进行查询.
我有一个表(MySQL),每隔n秒捕获一次样本.该表有许多列,但重要的是两个:时间戳(TIMESTAMP类型)和计数(INT类型).
我想做的是在一定范围内获得计数列的总和和平均值.例如,我每2秒记录一次样本,但我希望所有样本的10秒或30秒窗口中所有样本的计数列总和.
这是一个数据示例:
+---------------------+-----------------+ | time_stamp | count | +---------------------+-----------------+ | 2010-06-15 23:35:28 | 1 | | 2010-06-15 23:35:30 | 1 | | 2010-06-15 23:35:30 | 1 | | 2010-06-15 23:35:30 | 942 | | 2010-06-15 23:35:30 | 180 | | 2010-06-15 23:35:30 | 4 | | 2010-06-15 23:35:30 | 52 | | 2010-06-15 23:35:30 | 12 | | 2010-06-15 23:35:30 | 1 | | 2010-06-15 23:35:30 | 1 | | 2010-06-15 23:35:33 | 1468 | | 2010-06-15 23:35:33 | …
我有一个UIPickerView和,didSelectRow当点击选定的行时不调用该方法.我需要处理这个案子.有任何想法吗?
昨天我正在编写一些任务,让我感到震惊的是,当我使用pl/sql时,我并不知道检查表中是否存在行的正确和接受方式.
例如,让我们使用表格
PERSON(ID, Name);
Run Code Online (Sandbox Code Playgroud)
显然我做不到(除非有一些秘密方法)类似于:
BEGIN
IF EXISTS SELECT id FROM person WHERE ID = 10;
-- do things when exists
ELSE
-- do things when doesn't exist
END IF;
END;
Run Code Online (Sandbox Code Playgroud)
所以我解决它的标准方法是:
DECLARE
tmp NUMBER;
BEGIN
SELECT id INTO tmp FROM person WHERE id = 10;
--do things when record exists
EXCEPTION
WHEN no_data_found THEN
--do things when record doesn't exist
END;
Run Code Online (Sandbox Code Playgroud)
但是我不知道它是否被接受的方式,或者如果有更好的检查方法,如果有人可以与我分享他们的智慧,我真的会感到高兴:)
干杯.
假设我有一个User带属性的模型:id, :first_name, :last_name, and :email.在我的应用程序中,访客用户不应该看到User's email and last_name.如果我想要一个用户列表,我知道如何选择特定值,但我不知道如何获得特定用户的特定属性,如
User.find_by(id: 5).select(:id, :first_name).
Run Code Online (Sandbox Code Playgroud)
对此的一个解决方案是用户
User.find_by(id: 5).attributes.slice('id', 'first_name')
Run Code Online (Sandbox Code Playgroud)
但后来我得到一个哈希而不是一个AR记录.我可以
User.select(:id, :first_name).find_by(id: 1)
Run Code Online (Sandbox Code Playgroud)
但是我不知道应该过滤哪些过滤器,因为我需要先了解用户.
你可以帮帮我吗?
默认的READ COMMITTED隔离级别是否以某种方式使select语句在事务内部的行为与不在事务中的行为不同?
我正在使用MSSQL.