【问题标题】:MySQL Complex QueryMySQL 复杂查询
【发布时间】:2011-02-16 21:01:09
【问题描述】:

我有一个包含keyword_id、site_id、百分比的表。

现在我使用:

SELECT   *
FROM     keyword_relations
WHERE    keyword_id = "game"
ORDER BY percentage DESC,
LIMIT    {$page}, {$limitperpage}

现在让我们根据这条 SQL 在第 26 页说出现了一个名为“example.com”的网站。

现在假设我想获取 example.com 上关键字所在的行号,我该怎么做。

例如,如果 example.com 在第 6 页的关键字“examples”排名第 5,那么当我拥有网站“example.com”和来自不同页面的关键字“examples”时,我如何获取页码。

我试图通过将关键字的网站排名的行数(按关键字出现排序)除以limit_per_page来找到网站应该出现的页码。

【问题讨论】:

  • count(*) 通常会有所帮助。当然有条件
  • 谢谢@Col。弹片。如果您能进一步帮助我,我将不胜感激,因为我知道 count(*) 通常会有所帮助。但在这种情况下,它有点不同。
  • 这个问题很混乱。有第 26 页,然后是第 6 页.. 请尝试改写并可能添加一些示例数据行。
  • 我很抱歉@Richard aka cyberwiki。我无法很好地解释这个问题。

标签: mysql sql select


【解决方案1】:
SELECT   *, @row:=@row+1 AS Row_Number
FROM     keyword_relations, (SELECT @row:=0) r
WHERE    keyword_id = "game"
ORDER BY percentage DESC,
LIMIT    {$page}, {$limitperpage}

我认为,鉴于what I could find

注意:将:=0 赋值更改为{$page}*{$limitperpage} 的值

编辑

如果您对页面感兴趣,请尝试以下操作:

SELECT    *, FLOOR((@row/5)+1) AS Page_Number, @row:=@row+1 AS Row_Number
FROM      keyword_relations,
          (SELECT @row:={$page}*{$limitperpage}) r
WHERE     keyword_id = "game"
ORDER BY  percentage DESC
LIMIT     {$page},{$limitperpage}

【讨论】:

  • 让我试试这个,我会尽快回复你
  • 您好,我正在尝试通过将关键字的网站排名的行号除以limit_per_page来找到页码。上面的查询不起作用。
  • @user381595:如果您愿意,可以在查询中使用 FLOOR(((@row:=@row+1)-1)/5)+1 AS PAGE,但请注意您需要使用 or。
  • @user381595:在我的答案中尝试我的新查询,看看是否没有帮助。
  • 对不起,但如果只有网站和关键字,但没有页面,那么我如何获取页码,您刚刚提交的查询也有 $page in limit,这是我正在尝试的要得到。谢谢
【解决方案2】:
$per_page_limit = 20;
$sql = "SELECT count(k_id) as k_id FROM keywords_relations WHERE k_id = '{$row['k_id']}' AND percent >= '{$row['percent']}'";
$data = mysql_fetch_array(mysql_query($sql));
$k_ids = $data['k_id'] + 1;
//is_int($k_page) ? floor($k_page) : floor($k_page) + 1;
if($k_ids % $per_page_limit ){
    $k_page = floor($k_ids/$per_page_limit) + 1;         
} else {
    $k_page = $k_ids/$per_page_limit;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-17
    • 2015-07-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多