2014-01-31 7 views
-1

Мне нужно выбрать несколько строк в MySQL. У меня есть процедура, называемая «proc_table», которая возвращает мне теперь 3 поля - oid, objet и 1 строку из db.cars. Запрос ограничен (мной).MySQL выбрать первые 5 строк (несколько строк)

Мне нужно удалить этот предел и сделать запрос, который вернет мне первые 5 строк. Если они не существуют, ссылки не будет (поле с нулевым значением). Я делаю запрос в «псевдокоде».

В: Какую функцию в MySQL я должен использовать для выбора определенных строк? Как справиться с ситуацией, если они не существуют?

CREATE procedure `proc_table`() 
BEGIN 
    SELECT a.oid as 'oid', 
    a.objet as 'objet', 


-- limited query 
     (select tab2_oid from db.cars where tab1_oid = a.oid LIMIT 1) 
-- limited query 

    FROM db.tab1 as a; 
END$$ 

псевдокод

-- limited query 
     (select tab2_oid as 'first_row' from db.cars where tab1_oid = a.oid where row=1) 
     (select tab2_oid as 'second_row' from db.cars where tab1_oid = a.oid where row=2) 
... 

-- limited query 

ответ

1

как об использовании союза и LIMIT заявление?

select feld1,feld2 from 
(select feld1,feld2 from table1 where... LIMIT 1,1 
union all 
select feld1,feld2 from table2 where....LIMIT 2,1 
.... 
)a LIMIT 5        
+0

Я нашел что-то вроде LIMIT 1, 1 - который вернет мне 2-й ряд - это выглядит спокойнее, чем объединение - что вы думаете? – boski

+1

моя проблема в том, что вы не используете заказ, так что у вас есть несортированные данные и просто хотите поймать любую строку. если вы хотите указать строку, используйте порядок и опцию where where, или если вы просто хотите отображать любые строки, используйте функцию ограничения (например, 1,1), но с порядком без заказа вы будете отображать случайные данные – GBoehm

+0

Я решу сделать это таким образом, спасибо за помощь – boski

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