MySQL Select根据给定的数组集动态替换结果值

时间:2019-06-21 11:44:56

标签: mysql sql select mysqli

请参阅下面的阅读内容,以更好地理解问题...

$colors = ['#D23SSD','#UYH441','#FFFFFF'];

//sample user data [1,'ramees@yopmail.com','rameez',2]

DB::table('users')->select('id','email','name','color')->get();

所以我的意思是出于某种原因在DB上,我将保存$ colors的数组索引。但是在获取时很明显,我将获得“ color”作为数组索引。有什么办法可以获取数组值并与其他数据一起选择。

我不想运行循环并插入值,我也不想使用雄辩。我知道我可以雄辩地定义一个属性选项并获取数据。我不想用那个。我想用MySQL处理...

非常感谢任何帮助或想法,谢谢

2 个答案:

答案 0 :(得分:1)

签出ELT() function。它接受多个参数,一个整数,后跟N个其他参数。它使用第一个整数索引以下参数,并返回该参数。

以下是如何在MySQL语法中使用它的方法:

SELECT id, email, name, ELT(color, '#D23SSD', '#UYH441', '#FFFFFF') AS color
FROM users

因此,color为2时,它将返回'#UYH441'。

我将留给您了解如何pass a raw expression in Laravel

答案 1 :(得分:0)

这是幼虫吗?下面给你什么?

$results = DB::table('users')->select('id','email','name','color')->get();
dd($results);