2016-06-17 2 views
2

Чтобы выбрать что-то из базы данных, мы могли бы использовать:Mysql выбрать из массива

SELECT * FROM tableName where name="Ed" 

Но что если мне нужно выбрать что-то из данного массива, например:

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

ли возможное?

+2

вы можете подделывать fable, 'select * from (выберите 'bob' union select 'sam' union ....) как 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 должны быть вызваны. Я бы очень признателен, могу ли я сделать это: 'SELECT FROM_UNIXTIME (FooTable.Time) FROM (SELECT ('1428384605', '1429657398', '1429686889') как время) AS FooTable' –

+0

@ LionetChen, но у вас есть' WHERE time = '1429686889'' в конце? ;-) – Alex

+0

У меня нет этого фильтра: P поэтому я сказал «в случае OP». Я знаю, что я мог бы добиться конверсии с помощью Excel, но я был в редакторе SQL-запросов и просто слишком ленив, чтобы открыть Excel для ввода этих формул LOL –

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"; 
Смежные вопросы