Anonymous
вы хотите все одним запросом?
Anonymous
Вот думаю как оптимальней
Anonymous
думаю только UNION так сможет
Anonymous
А есть пример может быть какой-то?
Anonymous
http://www.yiiframework.com/doc-2.0/guide-db-query-builder.html#union
Anonymous
Я не про union а пример подобного запроса, так как не совсем понимаю, как его реализовать
Anonymous
Или имеется в видуцепочка последовательных селектов?
Anonymous
цепочка последовательных запросов
who are you
(SELECT person, amount FROM sales2005 WHERE amount=1000) UNION (SELECT person, amount FROM sales2005 WHERE person like 'Сергей');
Anonymous
Вариант, но не очень. Подумаю еще. Спасибо
who are you
http://www.sql.ru/docs/sql/u_sql/ch11.shtml
who are you
думаэ это то что нужно
who are you
подзапрос выполняется неоднократно, по одному разу для каждой строки таблицы основного запроса.
Anonymous
Мускул
Sergey
тогда union, переходи на mariadb
Anonymous
Могу снести и поставить марию
Anonymous
Это не проблема
Sergey
но ставь 10.2 или postresql
who are you
а чем мария в этом моменте предпочтительней?
Sergey
оконными функциями
Dmytro
https://dev.mysql.com/doc/refman/5.7/en/group-by-functions.html#function_group-concat
Dmytro
http://stackoverflow.com/a/15585351
Anonymous
Спасибо Изучу обязательно
Anonymous
Пошел читать то что скинули. А до этого решил так =)) Получился такой монстр SELECT n.id, n.niche, sub_table.title, sub_table.created_at FROM (SELECT n_id, title, created_at, @rn:=CASE WHEN @var_n_id = n_id THEN @rn + 1 ELSE 1 END AS rn, @var_n_id:=n_id FROM (SELECT @var_n_id:=NULL, @rn:=NULL) vars, resource WHERE n_id IN (SELECT n_id FROM niche) ORDER BY n_id , created_at DESC) as sub_table INNER JOIN niche n on n.id=sub_table.n_id WHERE rn <= 2 ORDER BY n_id , created_at DESC
Dmytro
explain попробуйте сделать)
Ivan
Хай всем! В общем есть вопрос, у меня есть виджет который на главню страницу выводит статейки, function run() { // var_dump($this->hisId); $history = Stories::find()-> where(['not',['id'=>$this->hisId]])-> select('id, author, text')-> orderBy(['date_create' => SORT_DESC])-> limit(3)-> all(); return $this->render('storylist',compact('history')); } это код виджета, как мне огрничить количество
Ivan
*количество выводимых символов в поле text
Sergey
StringHelper::truncate
Ivan
я правильно понимаю, мне эту функцию в виде использовать?
Ivan
или где то в запросе? О_о
Sergey
Эта функция принимает строку и количество знаков. Соответственно да, в виде.
Ivan
Спасибо Сергей, сейчас попробую!
who are you
вид это файл представления?
Ivan
да
Dmytro
http://www.yiiframework.com/doc-2.0/yii-helpers-basestringhelper.html#truncateWords()-detail этот метод будет по приятнее
Ivan
это файлы в котором ты выводишь из контроллера, ну если очень грубо объяснить
Dmytro
слова разрывать не будет
Ivan
окей, этот метод тоже попробую, спасибо!
who are you
слова разрывать не будет
а если слова по 20 символов?
Ivan
tringHelper::truncateWords - оболденная вещь!
Ivan
а если слова по 20 символов?
\yii\helpers\StringHelper::truncate('Текст который нужно обрезать',20,'...');
Ivan
вот 20 символов
who are you
не
who are you
я спрашивал что с ними будет с длинными словами
Ivan
а, ну как я только что понял он его обрежет, для этого ты ставишь суффикс '...'
Ivan
наверно так)
Ivan
я спрашивал что с ними будет с длинными словами
truncateWords так лучше, указал количество слов и ни каких проблем
Borys
Добрый день
Borys
Подскажите, пожалуйста
Borys
Можно ли как-то проверить значения массива на пустоту без использования цикла?
Borys
http://dl3.joxi.net/drive/2017/03/27/0017/0874/1139562/62/9c44bf4b56.png
Borys
т.е. if (функция_проверки_на_пустоту_значения($массив) { // действие }
Zhandos
Empty()
Borys
empty вернет true, т.к. массив не пуст
Borys
а мне необходимо проверить на пустоту именно значения
Vladimir
Надо чтобы все были не пустыми?
Borys
Надо что-бы если хоть одно не пустое, делать действие N
Borys
Как сделать циклом - понятно, интересно может быть есть функция какая-то
Artur‌‌‌
in_array
Artur‌‌‌
?
Artur‌‌‌
if (in_array("", $array)) N();
Borys
Думаю еще насчет удаления пустых значений из массива и тогда проверку на пустоту массива. Или объединить значения в строку и проверить строку.
Borys
Это будет проверкой если хоть одна пустая, делать N.
Zhandos
А пройтись foreach и каждый элемент проверять?
Borys
Не то что мне нужно
Borys
Как сделать циклом - понятно, интересно может быть есть функция какая-то
Zhandos
Аааа
Artur‌‌‌
Надо что-бы если хоть одно не пустое, делать действие N
Это будет проверкой если хоть одна пустая, делать N.
Artur‌‌‌
так равносильно же
Artur‌‌‌
аа
Artur‌‌‌
не пустое
Artur‌‌‌
понял
Dmytro
Делайте for/foreach и break