The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Выборка данных в mysql."
Вариант для распечатки  
Пред. тема | След. тема 
Форум WEB технологии (MySQL)
Изначальное сообщение [ Отслеживать ]

"Выборка данных в mysql."  +/
Сообщение от Александр (??) on 17-Ноя-11, 17:50 
Здравствуйте.
Столкнулся с таким вопросом.
Есть таблица
ip_adress   |  group  | user_data
__________________________________________________________________________________________________
                      
127.0.0.1   |    2    | a:3:{s:7:"user_id";s:1:"1";s:8:"username";s:5:"User1";s:6:"status";s:1:"1";}  
__________________________________________________________________________________________________
                
192.168.0.3 |    1    | a:3:{s:7:"user_id";s:1:"2";s:8:"username";s:5:"User2";s:6:"status";s:1:"1";}
__________________________________________________________________________________________________
                
192.168.0.4 |    2    | a:3:{s:7:"user_id";s:1:"3";s:8:"username";s:5:"User3";s:6:"status";s:1:"1";}

Я не могу вывести id пользоваетелей (user_id находится в сериализованных данных user_data), которые состоят во вторых группах.
Т е SELECT user_id FROM table WHERE table.group = 2 и не имею пока представления, как user_id извлечь из user_data.
user_id находится  в строке после "user_id" в следующих двойных кавычках. т е a:3:{s:7:"user_id";s:1:"2"; ...  здесь, например, user_id = 2. Я с регулярками пытаюсь бороться.
Заранее благодарен.

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Выборка данных в mysql."  +/
Сообщение от Дядя_Федор email on 17-Ноя-11, 19:08 
> Т е SELECT user_id FROM table WHERE table.group = 2 и не
> имею пока представления, как user_id извлечь из user_data

Зачетный запросец, правда? :)))) Особенно после того, как Вы сами же описали структуру таблицы. В сильном душевном волнении составлялся, не иначе. А нужную Вам задачу можно решить при помощи функции substring. При условии, что количество знаков до user_id одинаково. У Вас вроде бы так и есть.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Выборка данных в mysql."  +/
Сообщение от Square (ok) on 17-Ноя-11, 19:37 
>[оверквотинг удален]
> __________________________________________________________________________________________________
> 192.168.0.4 |    2    | a:3:{s:7:"user_id";s:1:"3";s:8:"username";s:5:"User3";s:6:"status";s:1:"1";}
> Я не могу вывести id пользоваетелей (user_id находится в сериализованных данных user_data),
> которые состоят во вторых группах.
> Т е SELECT user_id FROM table WHERE table.group = 2 и не
> имею пока представления, как user_id извлечь из user_data.
> user_id находится  в строке после "user_id" в следующих двойных кавычках. т
> е a:3:{s:7:"user_id";s:1:"2"; ...  здесь, например, user_id = 2. Я с
> регулярками пытаюсь бороться.
> Заранее благодарен.

Какой придурок догадался таким образом заполнять таблицы?
Заполнить таблицы нормальным способом не дано?

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

5. "Выборка данных в mysql."  +/
Сообщение от DeadLoco (ok) on 20-Ноя-11, 03:45 
> Какой придурок догадался таким образом заполнять таблицы?
> Заполнить таблицы нормальным способом не дано?

Да много кто так заполняет. Например, Roundcube WebMail так хранит клиентские настройки. Верней, дифф настроек относительно дефолтных. И еще попадался подобный подход пару раз. Так что не редкость.

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

3. "Выборка данных в mysql."  +/
Сообщение от ACCA (ok) on 18-Ноя-11, 07:57 
> регулярками пытаюсь бороться.

Правильный подход к проблеме - бороться с тем, кто так набил базу.

С существующей базой есть два варианта -

1. Перегнать в PostgreSQL и написать методы для парсинга лизергинового поделия
2. Написать на чём-нибудь парсер и разложить данные в 3NF

Потом выполнить обычный SELECT.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "Выборка данных в mysql."  +/
Сообщение от Дядя_Федор email on 18-Ноя-11, 08:34 
Если человек всю жизнь работал в MySQL (что, впрочем, глядя на его SELECT вызывает серьезные сомнения) - зачем ему решать задачу такими кардинальными методами, как переход на другую СУБД??? Я не касаюсь вопроса - лучше Постгрес мускула или хуже. Это ДРУГАЯ СУБД (хотя и SQL), с другим инструментарием. Все вполне можно решить менее радикальными методами. Собственно, даже тот бардак, который устроили при наполнении этой таблицы - тоже вполне можно решить. Если знать "матчасть" (SQL). ;) А в данном случае это далеко не так, как Вы видите выше.
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру