Забыли пароль?
Запросите новый здесь.

Автор темы: lucky
ID темы: 1834
Информация:
Тема содержит 8 сообщения, была просмотрена 2574 раз.
Просмотр темы
PHP-Fusion Russia » Веб-разработка » MySQL
 Распечатать тему
Как правильно написать запрос на выборку данных
lucky
Здравствуйте,

есть такой запрос:
Загрузить источник  GeSHi: PHP
  1. $query = "SELECT id,title,discription,date
  2. FROM articles
  3. WHERE rubric='1' AND title LIKE '%$s_text%'
  4. OR discription LIKE '%$s_text%' ORDER BY date DESC";
Добавлено за 0.031 секунд, используя GeSHi 1.0.8.10


выборка идёт из таблицы articles где rubric='1', а как сделать тоже самый запрос только чтобы была одновременно выборка rubric='1' и rubric='2' ?

я что-то типа такого написал:
Загрузить источник  GeSHi: PHP
  1. $query = "SELECT id,title,discription,date
  2. FROM articles
  3. WHERE rubric='1' AND rubric='2' AND title LIKE '%$s_text%'
  4. OR discription LIKE '%$s_text%' ORDER BY date DESC";
Добавлено за 0.029 секунд, используя GeSHi 1.0.8.10

не работает)
Изменил(а) lucky, 20.10.2013 12:18
 
Vova
Загрузить источник  GeSHi: MySQL
  1. $query = "SELECT id,title,discription,date
  2. FROM articles
  3. WHERE (rubric='1' OR rubric='2') AND title LIKE '%$s_text%'
  4. OR discription LIKE '%$s_text%' ORDER BY date DESC";
Добавлено за 0.007 секунд, используя GeSHi 1.0.8.10

x1 x1
 
Web
Rush
скобки с or добавь, или IN
x1
 
Web
lucky
Всем огромное спасибо, всё работает ay
 
lucky
внесу небольшие изменения:
Загрузить источник  GeSHi: PHP
  1. $query = "SELECT id,title,discription,date
  2. FROM articles
  3. WHERE title LIKE '%$s_text%'
  4. OR discription LIKE '%$s_text%' AND (rubric='1' OR rubric='2') ORDER BY date DESC";
Добавлено за 0.035 секунд, используя GeSHi 1.0.8.10

вот теперь 100% верно!, сначала LIKE а потом уже ид строки, а если наоборот то выборка по всем идам была :)
 
lucky
что-то с оператором LIKE не чисто, после перезагрузки компа снова выборка стала без учётов условия (rubric='1' OR rubric='2'),

сделал опять как написал Vova выборка стала с учётом идов.. непонятно то работает то нет, а может оператор LIKE вообще игнорит условия и всегда по всей таблице ищет?!
 
Razor
Скачать исходники  Код
     $query = "SELECT id,title,discription,date
    FROM articles
    WHERE title LIKE '%$s_text%'
    OR discription LIKE '%$s_text%' AND rubric IN (1,2) ORDER BY date DESC";



Если правильно понял..
Либо так, в зависимости что хотите получить..
Скачать исходники  Код
$query = "SELECT id,title,discription,date
    FROM articles
    WHERE (title LIKE '%$s_text%'
    OR discription LIKE '%$s_text%') AND rubric IN (1,2) ORDER BY date DESC";






Скобки имеют значение;)
Изменил(а) Razor, 20.10.2013 19:42
x1 x1 x1 x1
 
lucky
Razor, спасибо

скобки это сила df


наверное оператор OR мешал корректно работать, скобки помогли
 

Поделиться этой темой
Социальные закладки: Vkontakte Odnoklassniki Mail.ru Facebook Google Tweet This
URL:
BBcode:
HTML:

Перейти на форум:
Похожие темы
Темы Форум Ответов / Просмотров Последние сообщения
Как правильно сделать ЧПУ и переиндексировать сайт?  →  Моды 2 / 708 22.11.2017 18:20
Посоветуйте JS-слайдер чтобы фотки JPG сменялись как в GIF-анимации  →  Плагины 2 / 434 13.11.2017 21:01
Ответственность за нарушения в области персональных данных  →  Безопасность 19 / 3398 11.10.2017 21:04
Посоветуйте как можно больше дешёвых хостингов для лендингов  →  Хостинг 3 / 693 30.09.2017 18:44
как прикрепить скрипт к сайту  →  Хаки/скрипты 1 / 1224 17.08.2017 10:46
Как правильно подсчитать рейтинг статьи?  →  Хаки/скрипты 3 / 916 09.08.2017 22:27
Как правильно загрузить свой шрифт в css для всех браузеров?  →  Темы оформления 7 версии 12 / 5655 04.08.2017 10:06
Оптимизация баз данных  →  Ошибки, баги 1 / 1117 07.06.2017 16:40
Как массово удалить присланные новости?  →  Вопросы новичков 7 / 4964 06.06.2017 12:10
Перенос базы данных с joomla на php-fusion  →  Установка и настройка системы 4 / 4929 02.06.2017 14:23
Топ 5 пользователей форума
Alex Alex (1,172)   Zaxap Zaxap (1,078)   Vova Vova (877)   Pisatel Pisatel (678)   util util (666)