2015-03-16 2 views
1

запроса:MySQL - выбор строки

select 33, 12, 53; 

Результат:

+----+----+----+ 
| 33 | 12 | 53 | 
+----+----+----+ 
| 33 | 12 | 53 | 
+----+----+----+ 

Можно ли запрошенная запись получить:

+----+ 
| 33 | 
+----+ 
| 33 | 
| 12 | 
| 53 | 
+----+ 

без союза?

select 33 union select 12 union select 53; 

Потому что это выглядит не очень красиво.

+5

Вы хотите союз даты без unioning данных. Боюсь, вам придется объединить данные, чтобы данные были объединены. – JNevill

+0

@JNevill Сделал мой день: D – OddDev

+0

Посмотрите, нет 'UNION' !! 'SELECT DISTINCT CAST (RAND() * 100 AS UNSIGNED) AS n FROM tbl_with_thousands_of_rows HAVING n IN (33,12,53);' :-P (хотя все равно не гарантируется возврат всех из них) –

ответ

1

Вы можете создать данные (при необходимости используйте TEMPORARY TABLE), тогда выберите это будет самый простой вариант, не используя UNION.

CREATE TABLE yourtable 
    (`33` int) 
; 

INSERT INTO yourtable 
    (`33`) 
VALUES 
    (33), 
    (12), 
    (53) 
; 

SELECT * 
FROM yourtable; 

ВЫВОД

+----+ 
| 33 | 
+----+ 
| 33 | 
| 12 | 
| 53 | 
+----+ 

SQL Скрипка: http://sqlfiddle.com/#!9/edaba9/1/0

+0

Да, это работает, спасибо. Я в некоторых случаях точно так же, как вы описали ...) –

Смежные вопросы