我有一个表,其中有一列名为article_title. 假设表名是articles. 我需要找出多个记录中article_title数据相同的记录。
这是我所拥有的:
select a.*
from articles a
where a.article_title = (select article_title
from articles
where article_title = a.article_title
AND a.id <> articles.id)
Run Code Online (Sandbox Code Playgroud) 我想使用 MySQL 在一个查询中执行以下操作:
如何在一个查询中完成此操作?如果您需要更多信息,请告诉我,我很乐意为您提供帮助。我不是创建问题的专家,所以请告诉我您需要什么更多信息。
这是我现在正在做的一个例子:
select id from messages where parent_id=0
Run Code Online (Sandbox Code Playgroud)
进而
select count(id) from messages where parent_id={{previously_chosen_id}}
Run Code Online (Sandbox Code Playgroud)
如何获得一次性查询?就像是...
select id, count(records where parent_id=the id we just asked for)
Run Code Online (Sandbox Code Playgroud)
或者,有没有更好的方法来处理这个问题?你看,目前我必须运行大量查询才能找到计数,而我宁愿一次性完成。
我有一张电子邮件表。然后,我有一张桌子,里面有message parts.
该Parts表包含一个
field_id, message_id, and data
Run Code Online (Sandbox Code Playgroud)
当时我使用 Parts 来命名表,但使用 field_id 作为列。仅供参考
例如,a part_idof 2 将是消息的主题。我有subject, date, htmlbody, 和 的部分textbody。由于这种结构,与将所有数据推送到消息表中相比,每封电子邮件(一个用于部分,另一个用于与电子邮件关联的电子邮件地址)大约多 2 个查询。我发现这种结构是最好的,但我开始认为它可能是错误的并且对性能不是最好的。
我的问题是,重组数据库是否符合我的最佳利益?我宁愿不。
我正在考虑将htmlbodyandtextbody和subjectanddate移到messages table. 另一种解决方案是在一个查询中从表中获取所有emails和它们。我可以在一个查询中获取所有 id,然后为第二个查询执行 IN(ids)。dataParts
CREATE TABLE IF NOT EXISTS `messages` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`user_id` int(10) NOT NULL,
`account_folder_id` int(10) NOT NULL,
`hash` varchar(255) NOT NULL,
`uid` int(10) …Run Code Online (Sandbox Code Playgroud) 我有一个包含datetime timestamp. 我正在寻找的是根据datetime timestamp.
这是我到目前为止所拥有的,尽管我认为它不正确:
SELECT jobs.*,occupations.title
FROM jobs
LEFT JOIN occupations on occupations.id = jobs.occupation_id
WHERE DATE_ADD(jobs.`date_created`,INTERVAL 27 DAY) = DATE(NOW())
Run Code Online (Sandbox Code Playgroud)
请帮忙 :)