Задавайте вопросы, мы ответим
Вы не зашли.
Скажите пожалуйста , есть ли способ получить данные из таблици таким образом....
имеется таблица в которой есть такие поля:
id,user_id,text,published
Мне надо выбрать все значения из поля text у которых published = 1 , и если user_id = $user ,то выбрать и те которые имеют published = 0 ,для этого пользователя.
Published может быть только 1 или 0.
Есть ли возможность сделать это через SQL запрос?
Заранее спасибо.
Отредактированно grusha (30.05.2009 02:12:23)
Неактивен
SELECT text
FROM tablename
WHERE published=1 OR used_id=$user
Отдельные ключики на published и user_id
Неактивен
Спасибо.
Но я новичок.
Проблема в том что я MySql знаю , а она меня нет
Можно подробнее про "Отдельные ключики на published и user_id"
Неактивен
Ну, если на табличке есть отдельные ключи на этих двух полях, то выборка может происходить
чуть быстрее. Создать ключи можно командами
ALTER TABLE tablename ADD INDEX(published);
ALTER TABLE tablename ADD INDEX(used_id);
Неактивен
Не знаю насколько это правильно , но я сделал так.... и это вроде работает
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);
А как после этого будет выглядеть запрос ?
Неактивен
Можно и так, как у Вас. Более простой способ — в комментарии #2
Неактивен