如何在MYSQL中做這樣的事情?mysql在指定的整數值下評估函數
SELECT MyFunction(x)其中x in(1,2,7,20,30);
看起來像一個簡單的查詢應該存在這個和在Oracle中我可以很容易地使用Dual表,但我沒有看到在MySQL中這樣做的伎倆。注意在我的情況下,1,2,7,20,30不是來自表格(在這種情況下,它會很容易,只是一個簡單的連接)。在我的情況下,我將在C#中生成查詢(特別是整數值),然後進行數據庫調用。
任何想法?
如何在MYSQL中做這樣的事情?mysql在指定的整數值下評估函數
SELECT MyFunction(x)其中x in(1,2,7,20,30);
看起來像一個簡單的查詢應該存在這個和在Oracle中我可以很容易地使用Dual表,但我沒有看到在MySQL中這樣做的伎倆。注意在我的情況下,1,2,7,20,30不是來自表格(在這種情況下,它會很容易,只是一個簡單的連接)。在我的情況下,我將在C#中生成查詢(特別是整數值),然後進行數據庫調用。
任何想法?
示例輸出將幫助,但也許是這樣的....
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);
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)
這對我的作品在我眼前的形勢,我將有最多10個整數值!我猜對於更大的集合來說,沒有更清晰的解決方案,說50個值?一種避免有點笨拙的「聯合選擇」重複50次的方法? – shev72
由於提供了值而不是基於模式,因此我們無法循環生成它們。笨拙的聯盟選擇是我能想到的在這裏....除非...我們知道最小值,然後我們可以循環並生成一個集說1-1000,然後簡單地說在哪裏...但我不是確定這是任何清潔劑。 – xQbert