savage

savage
Рейтинг
224
Регистрация
10.01.2007
Должность
Разработка и продвижение сайтов

Ай-я-яй!!! Обманывать пользователя нехорошо!

Вижу изменения +- 1-2 позиции. Странно, что Яндекс не признается в том что был пусть слабенький, но ап. Хм и maulnet, и Трофименко - тоже ничего не зафиксировали. Что же это? Так... "эхо войны" © :)

Dreammaker:
ну как: поставить все строки, которые содержат опредёленное значение в конец :)
update: собственно, мы сортируем по очереди, сначала первое правило, которое сортирует по содержание/отсуствию определённого значения, а затем уже по второму - по цене.

Спасибо за комментарий! Первый раз такое вижу в ORDER BY :)

Dreammaker:
SELECT * FROM prod WHERE count>0 and price>0 ORDER BY img='' ASC, price DESC LIMIT 0,12

Попробуйте так.

Работает. :) Почему, не могу понять, и как вообще воспринимать эту конструкцию ORDER BY img='', но работает!

DyaDya:
Я понял как, но нужно вспомнить;) передаю смысл:

SELECT price, STRCMP('', img) AS have_image FROM prod WHERE price>0 ORDER BY have_image ASC, price DESC;

Вся фишка вот в этом: STRCMP('', img) AS have_image, а потом по have_image можно как нужно сортировать.

STRCMP('', img) должно для пустого поля вернуть 1, а для позиции с картинкой должно вернуть -1. Вот по этому значению параметра и сортируем.
Если по ASC, то вверху будут те позиции у которых есть картинки. Они будут сортироваться по цене. Потом пойдут те у которых нет картинок и тоже будут сортироваться по цене.

Вместо STRCMP('', img) можно и другую какунидь функцию похожую, которая возвращает true или false в случае совпадения и не совпадения значений '' (пустая строка) с img

А как сортировать в ORDER BY это уж как пожелаете.

Вроде правильно всё описал. Удачи.

---
Нашёл похожую функцию, которую тоже можно применить IF(img<>'', 1, 0) - должна возвращать 1, если картинка есть, и 0 если картинки нет. Нужно проверить как будет реагировать на значение NULL в поле img

А это вообще очень эллегантное решение и красивое решение! Dreammaker и DyaDya большое спасибо!

MOP1, в таком варианте сортирует только по цене, а на картинки забивает

Sentoro:
ORDER BY `таблица`.`поле` ASC, `таблица`.`поле` DESC

ORDER BY img DESC, price DESC - изображения впереди оказываются, но не отсортированные по цене.

ORDER BY img, price DESC - по цене сортирует, но изображения сзади.

А разница какая, с написанным выше, если таблица одна?

mhz:
Реальни. о.О
Вот так засада, особенно если учесть, что очень многим сайтам каталожный «title» присваивается модераторами и может не содержать ключевых слов вообще.

Интересное наблюдение - не зря я с боем выбивал у редакторов чуть ли не каждое слово тайтлов при добавлении в ЯК для своих сайтов.

Sim:
Страсти-то какие...

Не забудьте болельщиков оповестить заранее.

Да, устроим аналог передачи "К барьеру" только на серче. Можно даже раздел соотвествующий сделать.

Может быть эта статья вам поможет: www.ibm.com/developerworks/ru/library/os-php-unicode/index.html

Oleg.OBM:
Вражда здесь надуманная

Нет здесь никакой вражды. Просто когда начинают вместо того, чтобы разобраться или хотя бы задать вопрос, кричать "ГАВНОап! ... Ни разу это не ап...", а у всех остальных все нормально и ап нормальный без всяких сильных подводных камней, из-за того, что один какой-то сайт вылетел, естественно, получают порцию порицания в ответ - сам виноват, сам сайт потопил и еще тут же на форуме еще и расписался в своей некомпетентности.

Oleg.OBM:
Что ж я глупого написал и что не по правилам?

Про правила вам правильно сказали: первое - вместо того, чтобы флудить - сами бы чего-нить стоящее по теме написали. А еще обсуждение обсуждение репутации на форуме запрещено, так что уже как минимум 2 нарушения.

Oleg.OBM:
Остроумно однако 😂 Только я говорил о том, что если будут делится тем что сделали и какой результат получили, а не рытся в железных внутренностях яндекса 🚬

Сылок добавил, текстовую составляющую поправил - там где велись работы все в плюс :) Какие там коэффициенты меняются и какие куски базы отваливаются - этой информацией тут никто не владеет, можете даже не ждать и не искать.

Всего: 2322