php - 如果存在则选择值,否则加载默认值

标签 php mysql codeigniter

这是我的 table :

table

我想从特定区域获取默认的 5 条记录(如果存在),否则任何默认记录,如果存在 2 条记录,则随机需要获取 3 条记录。如果有 4 个,那么 1 个是随机的。例如,如果我尝试获取 mumbai,那么前 2 个是“mumbai”,另外 3 个是从表中获取的任何随机记录。假设我想按 'washington' 获取,那么没有记录,因此需要随机获取所有 5 条记录。

那么我该怎么做呢?

希望你明白我想说的。如果没有的话你可以问我。

谢谢。

最佳答案

您可以使用订单和限制。像这样的事情:

select *
from your_table
order by case when area = 'mumbai' then 1 else 2 end
limit 5;

上面的 case 表达式会将给定区域保留在顶部,其他区域保留在顶部。 limit 5 子句将选择前 5 个有序行。

关于php - 如果存在则选择值,否则加载默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42840631/

相关文章:

php - 无法在带有 M1 的 macOS 上安装十进制 PHP 扩展 – "Could not find libmpdec"

mysql - 如何用C代码减少MySQL连接超时

mysql - 第三个字符为 "_"时更新

mysql - Laravel 迁移值从 null 到 string

php - 连接两个 MySQL 列并输出 colB.name,其中 colA.id 等于 colB.id

php 和数学 - 四舍五入?

php - 取消设置 foreach 循环中的数组元素

php - composer global 需要 laravel/installer

web-services - 使用 CodeIgniter API 进行身份验证

php - MySQL 触发器每次更新都会添加两行