gpt4 book ai didi

php - 如果没有行与原始查询匹配,如何在 MYSQL 中返回默认行

转载 作者:行者123 更新时间:2023-11-30 00:50:57 24 4
gpt4 key购买 nike

我有一个类似的查询

SELECT *
FROM `mytable`
WHERE
(`status` LIKE 'active%' OR `status` LIKE 'featured%')
AND `views` < `tviews`
AND `id` > 4
ORDER BY RAND()
LIMIT 1;

现在,如果没有行与该查询匹配,我希望它返回 ROW 其中 id =2

这是怎么做到的。注意我想要整行位于位置 id=2

诗。如果表只包含最多 100 行,那么使用 RAND() 是否重要,对于 mysql 来说是个新手,除非必要,否则不想做任何事情

不,这不是一个重复的问题,我读过的另一个问题并不相同。它返回一个默认值,如“Peter”或 0,我希望它返回完整的 ROW 而不是单个值!所以感谢您的报告并阻止我提问

最佳答案

您应该停止使用 RAND()。话虽这么说...

$sql ="SELECT *
FROM `mytable`
WHERE
(`status` LIKE 'active%' OR `status` LIKE 'featured%')
AND `views` < `tviews`
AND `id` > 4
ORDER BY RAND()
LIMIT 1";
$stmt = $conn->query($sql);
if(!$data = $stmt->fetch(PDO::FETCH_ASSOC))
{
$sql ="SELECT *
FROM `mytable`
WHERE
(`status` LIKE 'active%' OR `status` LIKE 'featured%')
AND `views` < `tviews`
AND `id`=2";
$stmt = $conn->query($sql);
$data = $stmt->fetch(PDO::FETCH_ASSOC);
}

关于php - 如果没有行与原始查询匹配,如何在 MYSQL 中返回默认行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20980324/

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