加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 添加/分配数字以复制行

发布时间:2020-12-13 16:04:03 所属栏目:PHP教程 来源:网络整理
导读:我有一个名称和地址表,以及两个查询: $authors = "SELECT?* FROM authors";$addresses = "SELECT @rownum := @rownum + 1 AS addno,a.authorAdd FROM (SELECT DISTINCT authorAdd FROM authors) a JOIN (SELECT @rownum := 0) r"; 第二个当前为每个唯一地址
我有一个名称和地址表,以及两个查询:

$authors = "SELECT?* FROM authors";

$addresses = "SELECT @rownum := @rownum + 1 AS addno,a.authorAdd FROM (SELECT DISTINCT authorAdd FROM authors) a JOIN (SELECT @rownum := 0) r";

第二个当前为每个唯一地址分配唯一的行号,如下所示:

66 Acacia Avenue   1
301 Penny Lane    2

我需要做的是以某种方式将这两个查询组合在一起,以生成一个具有这些分配号码的地址的作者列表.即

Name        Address           AddressNo
Joe Blogs   66 Acacia Avenue  1
Bob Smith   301 Penny Lane    2
Jane Blogs  66 Acacia Avenue  1
Sarah Smith 301 Penny Lane    2

这样我就可以将它们显示为参考:

Joe Blogs(1),Bob Smith(2),Jane Blogs(1),Sarah Smith(2)

(1)66 Acacia Avenue,(2)301 Penny Lane

我已经考虑过添加jquery来动态添加数字,以便在提交时直接插入到数据库中,但不确定它是如何工作的.

因此选择了PHP显示选项,这显然很棘手,好像我将两个查询合并到一个查询中它实际上是在所有结果上重新分配行号,而我只需要它们用于一个查询(地址),如果是说得通.

感谢任何帮助!谢谢

解决方法

你可以使用session变量获取mysql

set @addressCount = 1;
set @old_address = null;
SELECT `name`,address,AddressNo FROM (
    SELECT `name`,@old_address,if(@old_address is null,@addressCount := 1,''),IF(address <> @old_address,@addressCount := (@addressCount +1),'' ),@addressCount AS AddressNo,@old_address := address
    FROM authors 
    ORDER BY address
) AS TEMP;

你可以在这里看到示例SQLFiddle.我不是php开发人员,你可以使用mysql所以在PHP代码中你可以运行这个查询.这会对你有所帮助.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读