2016-06-17 114 views
2

選擇從數據庫的東西,我們可以使用:Mysql的從一個陣列中選擇

SELECT * FROM tableName where name="Ed" 

但是如果我需要從一個給定的數組中選擇的東西,如:

SELECT * FROM ("Bob","Sam","Ed") where name="Ed" 

是它可能?

+2

試試看你能假的了一個寓言,'select * from(select'bob'union select'sam'union ....)as foo' –

回答

1

是的,它是可能的:

http://sqlfiddle.com/#!9/9eecb7d/64737

SELECT t.* FROM 
(SELECT "Bob" name UNION SELECT "Sam" UNION SELECT "Ed") t 
WHERE t.name="Ed" 

但它幾乎沒有任何意義。因爲如果你將所有的數據爲常量靜態值,你可以:

SELECT "Ed" 

沒有理由甚至打電話給mysql的:-)

+0

在OP的例子中,沒有任何意義。但是,如果需要調用某些MySQL函數。我真的很感激,如果我能做到這一點:'選擇FROM_UNIXTIME(FooTable.Time)FROM(SELECT( '1428384605', '1429657398', '1429686889')的時間)FooTable' –

+0

@LionetChen但你有沒有'WHERE時間='1429686889''在結束? ;-) – Alex

+0

我沒有那個過濾器:P因此我說「在OP的情況下」。我知道我可以通過Excel實現轉換,但是我在SQL查詢編輯器中,並且懶得打開Excel來輸入這些公式。 –

0

您可以

SELECT * FROM ( 
     select "Bob" as name 
     from dual 
     union 
     select "Sam" as name 
     from dual 
     union 
     select "Ed"as name 
     from dual) as t 
    where t.name="Ed";