我有一个正在运行的SQL查询,但我只想选择一个特定的行。例如,假设我的查询是:
Select * from Comments
假设返回10行,我只想选择此查询返回的第8条记录。我知道我能做到:
Select Top 5 * from Comments
为了获得该查询的前5条记录,但我只想选择某条记录,有没有什么我可以放在这个查询中来做到这一点(类似于top)。
谢谢
杰克
我正在尝试从多个表中删除。下面是我的表的样子
A_has_B ---- B ---- C_has_B
(many to many) (many to many)
我正在尝试删除A_has_B、B和C_has_B中的所有行,给定B中某条记录的ID。我将MySQL与innodb存储引擎结合使用,并为A_has_B和引用B中的ID的C_has_B定义了外键。
我尝试执行删除操作,如下所示:
DELETE A_has_B.*, C_has_B.*, B.*
FROM
A
join
B
on (B.B_id = A.B_id)
join
C
on (C.B_id = B.B_
如果我执行以下MySQL查询
select * from table where name Like '%john%' limit 5;
这意味着查询将搜索所有mysql数据库表,并只返回与查询哪个条件匹配的前5个结果。
但是,如果只想搜索数据库表中与where条件匹配的前1000条记录,并且只返回前5行,因为我在表中有1,000,000条记录,而我只想在前1000条记录中搜索,我应该使用什么?
这是人类可读的想要查询:
从名称类似于john的表中搜索前1000条记录,并只返回匹配的前5条记录。
在MySQL中对应的是什么?
新手问题这里,每当我更改SQL Server2008 R2表中的某条记录时,我都想增加一条RevisionId记录;为此,我使用以下语法:
UPDATE TheTable
SET RevisionId=(SELECT RevisionId
FROM TheTable
WHERE Id=@id) + 1
WHERE Id=@id;
顺便说一句,我将把这个放到触发器中,这样就会自动发生,但是虽然这段代码可以工作,但它感觉很笨拙--有没有更干净的方法呢?
我插入了100多万条记录,我的每个插入查询一次通过单个查询插入15000条记录,插入100万条记录需要1分钟
就像这样:
insert into records (data) values ('a'),('b'),('c'),('d')........................
但是当我一次执行2个查询时,mysql会变慢,需要25-30分钟。
我应该使用什么mysql配置来解决这个问题
我有一个mysql查询,类似于:
SELECT name FROM table_name WHERE name LIKE '%custom%' limit 10
它从我的自定义表中返回2行。
我想从文本c cu cus cust usto stom tom om m中得到包含任何一个单词的记录。
我尝试了以下查询:
SELECT name FROM table_name WHERE name like '%custom%' OR name REGEXP 'c|cu|cus|cust|usto|stom|tom|om|m' limit 10
上面的
我需要一个mysql表中的每一个子类别的前6条记录,其中有将近100 k条记录。我尝试了下面的mysql查询,但我担心它在具有大量记录的表中的性能。
SELECT
*
FROM
(SELECT
sub_cat_id,
title,
@rn:=IF(@prev = sub_cat_id, @rn + 1, 1) AS rn,
@prev:=sub_cat_id AS previd,
created_date
FROM
blog
WHERE
我正在尝试从mysql中获取包含在两个日期(这两个日期分别是date_start和date_end,并且存储在两个不同的列中)之间的某段时间内的记录。
我现在在select查询中所做的是:
.. WHERE MONTH(date_start) >= '".$month_start."' and DAY(date_start) >= '".$day_start."'" AND MONTH(date_end) <= '".$month_end."' and DAY(dat
在我最近的一个基于PHP (CodeIgniter)的项目中,一个MySQL表包含了将近30.000条记录(而且还会增加更多)。如果我将这些记录显示为列表,性能就会降低(MySQL会在短时间内检索所有这些记录,但是运行30.000次PHP循环是不可行的)。因此,我的计划是一次加载100个记录,并创建一个分页,以便用户可以选择一个页面号来加载指定数量的记录。
我可以使用以下查询轻松加载前100条记录:
SELECT * FROM <table_name> ORDER BY id ASC LIMIT 100
但问题是:当我选择page=2, page=3, ...., page=n时。
如何确定某条记录在哪个页面上?
假设我使用如下查询每页显示5条记录:
SELECT * FROM posts ORDER BY date DESC LIMIT 0,5
SELECT * FROM posts ORDER BY date DESC LIMIT 5,5
SELECT * FROM posts ORDER BY date DESC LIMIT 10,5
示例数据:
id | name | date
-----------------------------------------------------
1 | a | 2013-11-07 08:19
我在mysql数据库中遇到了一点问题。我有两个表,像user和post。
用户表
Post表
mysql查询
SELECT user_id,name FROM `post` where user_id IN(1,3,4); // 1,3,4 id of user from user table
上面的mysql查询工作fine.But现在我想得到每个用户的最多三条记录以上查询的randomly.Result是可以的
user_id name
1 one
3 two
1 three
1 four
1 five
当我尝试简单的MySql查询时
select id
from `contacts`
where name LIKE '%abdul%'
OR email LIKE '%abdul%'
OR phone LIKE '%abdul%'
它从我的数据库中返回278条记录,就像我像这样搜索狮身人面像
$sphinx = new SphinxClient();
$sphinx->setServer('localhost',9312);
$sphinx->setLimits(0,1000);
$sphinx->setMa
我试图使用查询删除数据库中名为MySql 的表中的最后一条记录。
我尝试这样做的查询如下:
DELETE MAX(`id`) FROM `marks`;
表中有8列。我想删除最后一列而不指定id,如下所示:
DELETE FROM marks where id=8;
删除第8条记录后,我想删除第7条;在第6条之后,再删除第1条记录,而不手动指定id。
我正在以分隔的字符串格式存储配置文件好友ID。当运行查询时,它会给出1条记录,而它应该返回2条记录。
MySQL查询
SELECT * FROM PROFILES WHERE profile_id IN(SELECT profile_friends FROM PROFILES WHERE profile_id = '1')
这给出了这个结果(结果应该是2条记录而不是1条记录)
当我运行以下查询时,给出profile_friends字段中的两个ID。
SELECT profile_friends FROM PROFILES WHERE profile_id = '1
我有一个实体如下。
SchoolDetails
ID Name Rank School
1 A Lawrence
2 B 1 Lawrence
3 C 2 Lawrence
我需要找出某所学校(劳伦斯)排名最高的学生的详细情况。在本例中,ID 2是所需的输出。
我的linq查询是:
var result = SchoolDetails.Where(x=>x.School == "Lawrence").Max(y=>y.Rank).SingleOrDefault();
我收到一条信息,上面写着"int