SQLinfo.ru - Все о MySQL Webew.ru: теория и практика веб-технологий

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 30.05.2009 02:08:20

grusha
Участник
Зарегистрирован: 30.05.2009
Сообщений: 3

Выборка из базы.

Скажите пожалуйста , есть ли способ получить данные из таблици таким образом....
имеется таблица в которой есть такие поля:
id,user_id,text,published
Мне надо выбрать все значения из поля text у которых published = 1 , и если user_id = $user ,то выбрать и те которые имеют  published = 0 ,для этого пользователя.
Published может быть только 1 или 0.
Есть ли возможность сделать это через SQL запрос?
Заранее спасибо.

Отредактированно grusha (30.05.2009 02:12:23)

Неактивен

 

#2 30.05.2009 06:42:29

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Выборка из базы.

SELECT text
FROM tablename
WHERE published=1 OR used_id=$user

Отдельные ключики на published и user_id

Неактивен

 

#3 30.05.2009 12:56:00

grusha
Участник
Зарегистрирован: 30.05.2009
Сообщений: 3

Re: Выборка из базы.

Спасибо.
Но я новичок.
Проблема в том что я MySql знаю , а она меня нет smile
Можно подробнее про "Отдельные ключики на published и user_id"

Неактивен

 

#4 30.05.2009 14:21:16

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Выборка из базы.

Ну, если на табличке есть отдельные ключи на этих двух полях, то выборка может происходить
чуть быстрее. Создать ключи можно командами
ALTER TABLE tablename ADD INDEX(published);
ALTER TABLE tablename ADD INDEX(used_id);

Неактивен

 

#5 30.05.2009 21:35:26

grusha
Участник
Зарегистрирован: 30.05.2009
Сообщений: 3

Re: Выборка из базы.

Не знаю насколько это правильно , но я сделал так.... и это вроде работает smile
SELECT text
FROM tablename
WHERE published=1
UNION
SELECT text
FROM tablename
WHERE used_id=$user AND  published=0

Подскажите можно так или нет? Или может есть более простой способ?

paulus написал:

Ну, если на табличке есть отдельные ключи на этих двух полях, то выборка может происходить
чуть быстрее. Создать ключи можно командами
ALTER TABLE tablename ADD INDEX(published);
ALTER TABLE tablename ADD INDEX(used_id);

А как после этого будет выглядеть запрос ?

Неактивен

 

#6 31.05.2009 00:26:17

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Выборка из базы.

Можно и так, как у Вас. Более простой способ — в комментарии #2 smile

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson