簡體   English   中英

使用php和Mysql按最高編號和確認進行排序

[英]Using php and Mysql to Order by highest number and confirmation

好吧,我有一個帶有一列數字的mysql表,並且確認布爾值為0或1,我大約有1000行,所以這不是我可以手動執行的操作,但是無論如何...我想按最高值對行進行排序並抓取前5個人的姓名,然后將這5個人放在另一列的表格中,然后將其設置為Confirmed並繼續操作,直到表格中沒有剩下的人都沒有被確認...例如:

Name:Rank:Confirm
Bob:5000:0
James:34:0
Josh:59:1
Alex:48:0
Romney:500:0
Rolf:24:0
Hat:51:0

因此,當您運行代碼時,它將執行以下操作:

Squad:Name1:Name2:Name3:Name4:Name5
1:Bob:Romney:Hat:Alex:James 

(如您所見,Josh被排除在外,而Rolf太低了)

而且由於Rolf獨自一人,別無他物,因此他不會加入團隊,也不會得到證實……

我不是mysql的專業人士,所以我為此感到困惑,至多能夠按等級組織整件事,僅此而已。

編輯:我對此的可怕嘗試:

<?php 
$parse = mysql_query("SELECT MAX(rank) AS rank FROM users AND confirm='0'");
mysql_query("Insert into squad (nameone)values($parse)");
mysql_query("Update squad set confirm = '1' where name = $parse");
?>

假設確認將只有1或0。

CREATE TABLE table2 (id INT PRIMARY KEY AUTO_INCREMENT, name varchar(255));
CREATE PROCEDURE rank()
BEGIN
   DECLARE count INT DEFAULT 1;
   WHILE count > 0 DO
      UPDATE table1 SET Confirm=2 WHERE Confirm=0 ORDER BY Rank DESC LIMIT 5; 
      INSERT INTO table2 (SELECT GROUP_CONCAT(Name) FROM table1 WHERE Confirm=2);
      UPDATE table1 SET Confirm=1 WHERE Confirm=2;
      SELECT count(*) FROM table1 WHERE Confirm=0;
   END WHILE;
END;

需要CALL rank();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM