我在mysql中有一个函数,需要在一个查询中运行大约50次(不是一个设定值)。输入当前存储在一个数组中,例如 [1,2,3,4,5,6,7,8,9,10]
当单独执行mysql查询时,它运行良好,请参见下面的内容 column_name
表示它获取数据的列,在本例中,它是数据库中的一个double
中的第二个值 MOD()
函数是我从前面提到的数组中提供给mysql的输入
SELECT id, MOD(column_name, 4) AS mod_output
FROM table
HAVING mod_output > 10
为了实现输出,我需要以下代码
SELECT id, MOD(column_name, 4) AS mod_output1, MOD(column_name, 5) AS mod_output2, MOD(column_name, 6) AS mod_output3
FROM table
HAVING mod_output1 > 10 AND mod_output2 > 10 AND mod_output3 > 10
然而,这显然是非常肮脏的,当没有3个输入,但超过50,这将变得非常低效。
显然,从调用50多个单独的查询中,有没有更好的方法来获得相同种类(见下文)的输出?
在escennce中,我需要为mysql提供一个值列表并让它运行 MOD()
在指定列的所有列上。
我需要返回的唯一数据是 id
的行匹配 MOD()
函数以指定的输入输出(参见 MOD()
函数),其中输出小于10
请注意, MOD()
已经用作示例函数,但是,所需的最终函数应该是一个插入式替换
表格布局示例
id | column_name
1 | 0.234977
2 | 0.957739
3 | 2.499387
4 | 48.395777
5 | 9.943782
6 | -39.234894
7 | 23.49859
.....
(标题可能写错了,我不知道你还能怎么解释我在这里要做的事)
1条答案
按热度按时间nom7f22z1#
使用
join
和派生表或临时表:如果要将结果作为列,可以在以后使用条件聚合。