gpt4 book ai didi

mysql - 少于5个就加一行,否则替换mysql中最小的那个数

转载 作者:行者123 更新时间:2023-11-29 03:42:26 25 4
gpt4 key购买 nike

我对 Mysql 查询非常困惑。我有一个包含三列的表格;

 user_id | person_id | score.

该表将用于存储每个人的前 5 名高分。

我需要 at 查询来检查特定人员的行数是否少于五行。少了,插入新行。但如果有五行,我必须用新的分数替换最低的分数。

它用于用 PHP 编写的网络服务,有关新分数的数据作为参数发布到该方法。

现在已经卡住了几个小时了——是否有可能在一个查询中实现这一点?

最佳答案

可以在mysql中使用存储过程。我不知道这些表的名称,但如果你仔细观察,你就会明白它是如何工作的。

DELIMITER $$
DROP PROCEDURE IF EXISTS test $$
CREATE PROCEDURE test( IN testparam VARCHAR(22) )
BEGIN
DECLARE count INT(11);
SET count = (SELECT COUNT(*) FROM persons );
IF count < 5 THEN
insert into table_needed_for_insert values(testparam);
ELSE
update table_needed_for_insert where score=(select min(score) from table_needed_for_insert);
END IF;

select * from table_needed_for_insert
END $$
DELIMITER;

以及如何执行这个东西 CALL test(1); 1是参数,你需要多少就创建多少。从 php 你可以像这样直接调用

$result = mysql_query("call test(".$param.")");

在这里您可以查看有关 mysql 存储过程的教程: http://www.mysqltutorial.org/mysql-stored-procedure-tutorial.aspx

关于mysql - 少于5个就加一行,否则替换mysql中最小的那个数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11930886/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com