К содержанию

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

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

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

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

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

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

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

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

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

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

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

            зачем проверку то? берите его значение и выдергивайте с базы…
              Станислав
              Станислав Старожил
              01 августа 2014, 00:03
              Скорее всего вы правы Володя) По поводу что не последний)
              Согласен можно и так. Только вот что такое написать сюда чтобы так стало делать.
              &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