php - sql INNER JOIN 中的 Rownum?

标签 php mysql codeigniter join

我想在下面的查询选择中使用 rownum,我在下面的第一个查询中使用它 true 但不知道在下面的第二个查询中应该如何使用它?

第一个正确的查询:

$this -> db -> query("
SELECT @rownum := @rownum + 1 rownum, 
       t.* 
FROM   (SELECT * 
        FROM   table 
        ORDER  BY id DESC 
        LIMIT  $offset, $coun) t, 
       (SELECT @rownum := 0) r 
")

我在 foreach 的 html 代码中回显上面的 rownum 为:echo intval($row -> rownum + $offset)

第二个查询(我想在这个查询中使用它,这个查询怎么样?):

$this -> db -> query("
SELECT tour_foreign.id, 
       tour_foreign.name, 
       tour_foreign_residence.name_re, 
       tour_foreign.service, 
       tour_foreign.date_go, 
       tour_foreign.date_back, 
       tour_foreign.term 
FROM   tour_foreign 
       INNER JOIN tour_foreign_residence 
         ON ( tour_foreign.id = tour_foreign_residence.relation ) 
WHERE  tour_foreign.name LIKE "%' . $find . '%" 
        OR tour_foreign_residence.name_re LIKE "%' . $find . '%"
")

最佳答案

试试这个,只需将 @rownum 添加到 SELECT 列表的开头,并将 @rownum 重置为隐式 JOIN 到结尾。我用类似的 JOIN 对我的一个数据库进行了测试,它似乎可以正常工作。

将显式 JOIN 与针对 @rownum 重置伪表的隐式连接混合在一起看起来很奇怪,但我不知道执行显式 JOIN 当没有公共(public)列时。如果有人可以改善这种情况,请发表评论。

$this -> db -> query("
SELECT
       @rownum := @rownum + 1 rownum,
       tour_foreign.id, 
       tour_foreign.name, 
       tour_foreign_residence.name_re, 
       tour_foreign.service, 
       tour_foreign.date_go, 
       tour_foreign.date_back, 
       tour_foreign.term 
FROM   tour_foreign 
       INNER JOIN tour_foreign_residence 
         ON ( tour_foreign.id = tour_foreign_residence.relation ),
       (SELECT @rownum := 0) r
WHERE  tour_foreign.name LIKE "%' . $find . '%" 
        OR tour_foreign_residence.name_re LIKE "%' . $find . '%"
");

UPDATE 没有 ON 子句的显式 JOIN 也有效:

FROM   tour_foreign 
       INNER JOIN tour_foreign_residence 
         ON ( tour_foreign.id = tour_foreign_residence.relation )
       JOIN (SELECT @rownum := 0) r

关于php - sql INNER JOIN 中的 Rownum?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7812518/

相关文章:

PHP MySql (1045) 用户访问被拒绝

c# - 无法使用 MySQLConnection 连接到 MySQL 数据库

mysql - 连接三张表

javascript - Highcharts、Mysql 和 Codeigniter

php - laravel redis 使用 ttl 创建一个集合?

php - 如果 mysql_query 与 &&

javascript - 如何将值传递给模态(对于多条记录)?

javascript - 如果网站刷新,则停止 php 调用的 mysql 服务器运行

php - 单击“保存”按钮时应用程序崩溃

Codeigniter 不记录