2016-04-03 55 views
0

如何在MYSQL中做這樣的事情?mysql在指定的整數值下評估函數

SELECT MyFunction(x)其中x in(1,2,7,20,30);

看起來像一個簡單的查詢應該存在這個和在Oracle中我可以很容易地使用Dual表,但我沒有看到在MySQL中這樣做的伎倆。注意在我的情況下,1,2,7,20,30不是來自表格(在這種情況下,它會很容易,只是一個簡單的連接)。在我的情況下,我將在C#中生成查詢(特別是整數值),然後進行數據庫調用。

任何想法?

回答

1

示例輸出將幫助,但也許是這樣的....

Select myFunction(X) 
FROM (Select 1 UNION Select 2 union select 7 union select 20 union select 30)\ 

備選:

--PSEUDO ...

Select myFunction(X) 
FROM (Generate Table containing values Min to max of range passing in) 
where Value in (your list); 

喜歡的東西:Select a sequence between two numbers on MySQL

+0

這對我的作品在我眼前的形勢,我將有最多10個整數值!我猜對於更大的集合來說,沒有更清晰的解決方案,說50個值?一種避免有點笨拙的「聯合選擇」重複50次的方法? – shev72

+0

由於提供了值而不是基於模式,因此我們無法循環生成它們。笨拙的聯盟選擇是我能想到的在這裏....除非...我們知道最小值,然後我們可以循環並生成一個集說1-1000,然後簡單地說在哪裏...但我不是確定這是任何清潔劑。 – xQbert

1

union是一種方法。

SELECT (x + 100) 
FROM (select 1 as x union select 2 union select 7 union select 20 union select 30) t; 

輸出:

mysql> SELECT (x + 100) 
    -> FROM (select 1 as x union select 2 union select 7 union select 20 union select 30) t; 
+-----------+ 
| (x + 100) | 
+-----------+ 
|  101 | 
|  102 | 
|  107 | 
|  120 | 
|  130 | 
+-----------+ 
5 rows in set (0.00 sec)