Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Базы Данных > Выборка "предпочтительней"


Автор: SneG0K 24.3.2009, 10:56
Никогда еще с таким не сталкивался, но...

В общем есть таблица photos
id|language|title

Как сделать так, чтоб выбрало где `language` = 'rus', но если такого нет, то давало уже первый, какой есть?

Автор: bars80080 24.3.2009, 11:56
что-то я офигеваю от попыток засунуть всевозможную логику в один запрос. ну, что мешает написать два?

Автор: SneG0K 24.3.2009, 15:35
Цитата(bars80080 @  24.3.2009,  10:56 Найти цитируемый пост)
ну, что мешает написать два? 

Два написать любой дурак может. Просто хотелось одним. У заказчика свои тараканы, минимализм предпочитаетsmile

Автор: bars80080 24.3.2009, 17:25
Цитата(SneG0K @  24.3.2009,  14:35 Найти цитируемый пост)
У заказчика свои тараканы, минимализм предпочитает

скажи ему, не всё что маленькое - хорошо. имхо, странные заказчики пошли. если он суёт нос в запросы, может он сам себе напишет?

Автор: azesmcar 24.3.2009, 17:31
SneG0K
Код

select * from table
    order by (if(language='rus', 1, 2)) limit 1


так пойдет? правда это на MySQL

Добавлено через 1 минуту и 31 секунду
Цитата

скажи ему, не всё что маленькое - хорошо


ну если заказчик мужчина - это не сложно будет обяснить  smile 

Автор: SneG0K 24.3.2009, 18:03
Цитата(azesmcar @  24.3.2009,  16:31 Найти цитируемый пост)
ну если заказчик мужчина - это не сложно будет обяснить

Уже объяснилsmile Но тут еще маленький вопросегsmile
Вот есть count = 100
Как этому count добавить +1, не извлекая его?
Что-то типа $count = ++$count; ток для БД

Автор: azesmcar 24.3.2009, 18:04
Код

update table set count=count+1 ...


а что так не подходит?

Автор: ksnk 24.3.2009, 18:06
Код

select * from photos where `language ` = 'rus'
unit
select * from photos
limit 1

Сработает? Как заказывал - шампунь с полотенцем в одном флаконе smile

Добавлено через 1 минуту и 15 секунд
Опоздал :-(

Автор: azesmcar 24.3.2009, 18:18
ksnk, мухлюешь..это уже два запроса..
а так вообще лучше union all

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)