Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Приоритет столбца при запросе
 
 автор: neadekvat   (30.01.2010 в 14:18)   письмо автору
 
 

Доброго времени суток.
Делаю простой запрос
<?php
"SELECT * FROM table WHERE col1 LIKE '%some%' OR col2 LIKE '%some%'"

Можно ли сделать как-то так, чтобы сначала вытаскивались все строки, которые удовлетворяют col1 LIKE '%some%', и только когда таких строк не останеться, запрашивались бы col2 LIKE '%some%' ?

  Ответить  
 
 автор: а-я   (30.01.2010 в 14:38)   письмо автору
 
   для: neadekvat   (30.01.2010 в 14:18)
 

может просто отсортировать как то так?

SELECT 
    * 
FROM 
    `table` 
WHERE 
    `col1` LIKE '%some%' 
    OR 
    `col2` LIKE '%some%'
ORDER BY (`col1` LIKE '%some%')

  Ответить  
 
 автор: neadekvat   (30.01.2010 в 14:49)   письмо автору
 
   для: а-я   (30.01.2010 в 14:38)
 

Увы, у меня выдает не в том порядке. То есть вперемешку. Причем, похоже, вообще без какой бы то ни было сортировки

  Ответить  
 
 автор: а-я   (30.01.2010 в 14:59)   письмо автору
 
   для: neadekvat   (30.01.2010 в 14:49)
 

странно, но у меня все работает.. укажите DESC.
проверьте, может условия подходят для всех полей.

  Ответить  
 
 автор: neadekvat   (30.01.2010 в 15:10)   письмо автору
 
   для: а-я   (30.01.2010 в 14:59)
 

Отлично! С DESC заработало, как надо.

Благодарю! Уже который раз выручаете)

  Ответить  
 
 автор: Trianon   (30.01.2010 в 15:13)   письмо автору
 
   для: neadekvat   (30.01.2010 в 14:49)
 

SELECT *, col1 LIKE '%some%' AS p1, col2 LIKE '%some%' AS p2 
  FROM table 
  WHERE p1 OR p2 
  ORDER BY p1 DESC, p2 ASC 

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования