我正在开发一个测验网站,我有一个存储所有问题的数据库.有不同类型的测验,如数学,科学,历史等.所有问题都存储在一个表中.
我的问题表看起来像这样:
questions ( qno(int) ,type(int), question, .... ,... )
Run Code Online (Sandbox Code Playgroud)
qno是主键,type用于跟踪测验类型:
if type = 1 (math)
type = 2(science)
Run Code Online (Sandbox Code Playgroud)
现在,我想为每种类型的测试选择一些随机问题.例如,我可能只想为数学测试选择一些随机的20个问题.
MySQL有某种方法可以选择随机行吗?
我是SQLite和Java的新手,我正在努力学习.我有一个列中有一些数值,我希望得到它的总和并在textview中显示它.
我目前的代码是这样的:
public Cursor getTotal() {
return sqliteDatabase2.rawQuery(
"SELECT SUM(COL_VALUES) as sum FROM myTable", null);
}
Run Code Online (Sandbox Code Playgroud)
不过,我不确定该代码是否正确.
我知道我应该获取该代码的结果,但我不确定该怎么做.如何将此查询的结果存入我的Java代码?
我正在尝试构建一个Web图像服务器.它同时为许多客户(10万+)提供图像.(如果客户端较少,这将是一个更容易的问题.)这样做的好方法是,尽可能减少时间延迟.
我是这个领域的新手.任何建议都会受到欢迎.
我正在使用以下查询regexp:
SELECT a.id, a.company, a.name, b.title, b.description, b.t_id
FROM a, b
WHERE ( b.title
REGEXP "[[:<:]]a.company[[:>:]]" OR b.description
REGEXP "[[:<:]]a.company[[:>:]]" OR b.title
REGEXP "[[:<:]]a.name[[:>:]]" OR b.description
REGEXP "[[:<:]]a.name[[:>:]]" ) AND a.company != '' AND a.name != ''
Run Code Online (Sandbox Code Playgroud)
但是,此查询不会给出任何结果,也不会给出任何语法错误.
当我替换a.company或a.name使用任何公司名称时,此查询运行正常.为什么此查询不适用于列名?
基于Java中的递归算法,我很难理解以下代码.我不明白,什么是不同的价值x,y并且当他们彼此呼唤时有什么?我试图通过System.out.print()在代码中调用来获得正确的值,但仍然没有得到帮助.
public class RecursionExample
{
private static int[][] arr={
{3},
{7, 4},
{2, 4, 6},
{8 ,5, 9, 3}
};
public static int maxSum(int[][] graph, int x, int y, int sum) {
if (x == 3)
{
return sum+graph[x][y];
}
int max= Math.max(maxSum(graph, x+1, y, sum), maxSum(graph, x+1, y+1, sum));
sum += graph[x][y];
return sum+max;
}
public static void main(String[] ar)
{
System.out.println(maxSum(arr,0,0,0));
}
}
Run Code Online (Sandbox Code Playgroud)
我不是编程大师,我正在努力学习Java.任何帮助表示赞赏.
我有一张表prices,其中包括我每天跟踪的股票收盘价.
这是架构:
CREATE TABLE `prices` (
`id` int(21) NOT NULL auto_increment,
`ticker` varchar(21) NOT NULL,
`price` decimal(7,2) NOT NULL,
`date` timestamp NOT NULL default CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `ticker` (`ticker`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2200 ;
Run Code Online (Sandbox Code Playgroud)
我试图计算今天和昨天价格值大于0的任何东西的价格下降百分比.随着时间的推移,这张桌子将是巨大的,我担心性能.我认为这必须在MySQL方面而不是PHP方面完成,因为LIMIT这里需要它.
我如何处理最后2个日期并在MySQL中进行%drop计算?
任何建议将不胜感激.
我有这样一张桌子:
Date StudentName Score 01.01.09 Alex 100 01.01.09 Tom 90 01.01.09 Sam 70 01.02.09 Alex 100 01.02.09 Tom 50 01.02.09 Sam 100
我需要在不同日期内按分数对结果表中的学生进行排名,如下所示:
Date Student Rank 01.01.09 Alex 1 01.01.09 Tom 2 01.01.09 Sam 3 01.02.09 Alex 1 01.02.09 Sam 1 01.02.09 Tom 2
我怎么能在SQL中这样做?
SQL 2005,我有一个列为'ages_c'的表,我需要按年龄范围对记录进行分组.这是我在这个网站上找到的查询,它让我90%,但'group by'是错误的,*无效的列名'age_range'*
select
case
when age_c <18 then 'Under 18'
when age_c between 18 and 24 then '18-24'
when age_c between 25 and 34then '25-34'
END as age_range,
Count(*) as count
from contacts
group by age_range
order by age_range
Run Code Online (Sandbox Code Playgroud)
当我按'age_c'分组和排序时,我的结果是:
Under 18 1
18-24 1
18-24 1
25-34 1
Run Code Online (Sandbox Code Playgroud)
我想要的是:
Under 18 1
18-24 2
25-34 1
Run Code Online (Sandbox Code Playgroud)
谢谢.
我更喜欢使用实际上是内联连接的t-sql代码,而不是在存储过程或视图的末尾有一个很长的连接列表.
例如,我代码:
SELECT PKey , Billable,
(SELECT LastName FROM Contact.dbo.Contacts WHERE (Pkey = Contacts_PKey)),
(SELECT Description FROM Common.dbo.LMain WHERE (PKey= DType)),
(SELECT TaskName FROM Common.dbo.LTask WHERE (PKey = TaskType)) ,
StartTime, EndTime, SavedTime
FROM dbo.TopicLog where StartTime > '7/9/09' ORDER BY StartTime
Run Code Online (Sandbox Code Playgroud)
而不是
SELECT t.PKey, t.Billable, c.LastName, m.Description, lt.TaskName, t.StartTime, t.EndTime, t.SavedTime
FROM dbo.TopicLog AS t
inner join Contact.dbo.Contacts as c on c.Pkey = t.Contacts_PKey and t.StartTime > '7/9/09'
inner join Common.dbo.LMain as m on m.PKey = t.DType
inner join …Run Code Online (Sandbox Code Playgroud)