Выборка данных по полю "extended" в БД

Привет профессионалам и таким же начинающим как я)))

Вопрос к профессионалам.

Подскажите пожалуйста как правильно сделать запрос к полю «extended» в БД.

Допустим мне нужны все записи которые содержат «alone» в столбце «lider»

В ячейке БД «extended» запись имеет вид
{"lider":"alone","skype":"s.aloneby"}
Вот как сделать такой запарос? Спасибо ребята за терпение к таким как я. Вы ооочень помогаете стать умнее.
Станислав
31 июля 2014, 10:50
modx.pro
1
1 657
0

Комментарии: 12

Василий Наумкин
31 июля 2014, 15:02
+1
Только так:
WHERE `extended` LIKE '%"lider":"alone"%'

При использовании pdoTools, это будет выглядеть вот так:
$pdo = $modx->getService('pdoFetch');
$users = $pdo->getCollection('modUserProfile', array('extended:LIKE' => '%"lider":"alone"%'));
print_r($users);
Станислав
31 июля 2014, 16:12
0
Подскажите еще такой момент.
Вот конструкция
[[!pdoUsers?
    &groups=`Users`
    &tpl=`@INLINE <p>Имя - [[+fullname]], ID - [[+id]]</p>`
    &sortby=`id`
    &sortdir=`asc`
]]
Что тут надо дописать, чтобы был тот же результат?
    Илья Уткин
    31 июля 2014, 18:02
    0
    Вроде, так:
    [[!pdoUsers?
        &groups=`Users`
        &tpl=`@INLINE <p>Имя - [[+fullname]], ID - [[+id]]</p>`
        &sortby=`id`
        &sortdir=`asc`
        &where=`{"extended:LIKE":"%\"lider\":\"alone\"%"}`
    ]]
      Станислав
      31 июля 2014, 18:06
      0
      Илья спасибо большое за ответ, но не сработало (
        Володя
        31 июля 2014, 19:10
        1
        +3
        &where=`{"`modUserProfile`.`extended`:LIKE":"%\"lider\":\"alone\"%"}`
          Илья Уткин
          31 июля 2014, 19:15
          0
          Точно ))
            Станислав
            31 июля 2014, 20:03
            0
            Огромное спасибо! Нижайший поклон. Все работает!!))))))
          Konstantin
          11 января 2016, 22:51
          0
          Илья, а почему с русским текстом не пашет?

          &where=`{"`modUserProfile`.`extended`:LIKE":"%\"pole\":\"пример\"%"}`
        Станислав
        31 июля 2014, 20:13
        0
        И последний вопрос)
        Как сделать этот запрос динамичным.
        Залогинился человек и у него значение ALONE может быть другим.
        Как написать так, чтобы сначала делало проверку какое значение у него в этом поле LIDER, а потом вытаскивало все записи с таким же значением как у него?

          Володя
          31 июля 2014, 22:30
          +1
          я так думаю вопрос у вас совсем не последний)))

          зачем проверку то? берите его значение и выдергивайте с базы…
            Станислав
            01 августа 2014, 00:03
            0
            Скорее всего вы правы Володя) По поводу что не последний)
            Согласен можно и так. Только вот что такое написать сюда чтобы так стало делать.
            &where=`{"`modUserProfile`.`extended`:LIKE":"%\"lider\":\"alone\"%"}`
            Что нужно написать вместо ALONE? или как-то по другому надо?

            Или может что то вообще нужно изменить в этой конструкции.

            [[!pdoUsers?
                &tpl=`@INLINE <p>Имя - [[+fullname]], ID - [[+id]]</p>`
                &sortby=`id`
                &sortdir=`asc`
                &where=`{"`modUserProfile`.`extended`:LIKE":"%\"lider\":\"alone\"%"}`
            ]]
            Простите за тупость, хочу научиться)))
          Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
          12