SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 21.08.2012 14:32:35

iskiz
Участник
Зарегистрирован: 21.08.2012
Сообщений: 7

Получить значение после запятой

Здравствуйте посетители форума.
Есть таблица в которой находятся описания через запятую. То есть:

table_new:
Описание 01, описание 02, описание 03, и т.д.

Подскажите как через SELECT я могу получить описание, к примеру, третье по счету. Спасибо.

Неактивен

 

#2 21.08.2012 14:50:35

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Получить значение после запятой

Посмотрите http://dev.mysql.com/doc/refman/5.0/en/ … tions.html
в сторону locate (для поиска позиции искомой подстроки в строке) и substr (чтобы вырезать нужный кусок).

Это если по-плохому. А по хорошему - зачем Вы описания через запятую в строке храните-то?


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#3 21.08.2012 15:05:29

iskiz
Участник
Зарегистрирован: 21.08.2012
Сообщений: 7

Re: Получить значение после запятой

deadka написал:

Посмотрите http://dev.mysql.com/doc/refman/5.0/en/ … tions.html
в сторону locate (для поиска позиции искомой подстроки в строке) и substr (чтобы вырезать нужный кусок).

Это если по-плохому. А по хорошему - зачем Вы описания через запятую в строке храните-то?

У меня там не описание. У меня есть две таблицы "news_id" и "series"

таблица "news_id" содержит ИД новости - например:
24,86,316,109

а таблица "series" соответствующие по счету значения - например:
Сезон 1 (серия 1), Сезон 6 (серия 11), Сезон 12 (серия 2), Сезон 1 (серия 2)

И мне нужно получить значение из таблицы "series", которое соответствует нужному значению ИД новости из первой таблицы.
Мои мысли: Я так понимаю, что сначала я должен узнать через FIND_IN_SET('316',news_id); значение по счету и както получить 3-е значение по счету из второй таблицы.

Неактивен

 

#4 21.08.2012 15:08:23

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Получить значение после запятой

Брр. Приведите пожалуйста примеры данных из таблиц (select * from news_id) и  (select * from series) и пример нужного Вам результата.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#5 21.08.2012 15:27:28

iskiz
Участник
Зарегистрирован: 21.08.2012
Сообщений: 7

Re: Получить значение после запятой

deadka написал:

Брр. Приведите пожалуйста примеры данных из таблиц (select * from news_id) и  (select * from series) и пример нужного Вам результата.

Вообще движок ДЛЕ. В базе данных есть таблица со списком пользователей dle_users. То есть данные таблиц "news_id" и "series" для каждого пользователя собственные.

При запросе:
SELECT news_id FROM dle_users WHERE name='username'

Я получу значение такого вида:
309,26,80

При таком же запросе к "series":
SELECT series FROM dle_users WHERE name='username'

Получу:
Сезон 1 (серия 1), Сезон 6 (серия 11), Сезон 12 (серия 2)

В самом ПХП документе я имею ИД новости - например "26" и в конечном итоге я должен получить "Сезон 6 (серия 11)", а если ИД будет равен "80" то я должен буду получить "Сезон 12 (серия 2)"

Отредактированно iskiz (21.08.2012 15:27:46)

Неактивен

 

#6 21.08.2012 15:30:57

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Получить значение после запятой

Поясните пожалуйста - откуда мы узнаем, что

309 - это именно Сезон 1 (серия 1),
26- это именно Сезон 6 (серия 11)
а 80 - это именно Сезон 12 (серия 2)?


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#7 21.08.2012 15:40:28

iskiz
Участник
Зарегистрирован: 21.08.2012
Сообщений: 7

Re: Получить значение после запятой

deadka написал:

Поясните пожалуйста - откуда мы узнаем, что

309 - это именно Сезон 1 (серия 1),
26- это именно Сезон 6 (серия 11)
а 80 - это именно Сезон 12 (серия 2)?

Знать бы... smile
Сам пхп скрипт их так записывает. Таким образом:
$list = explode( ",", $member_id['news_id'] );
   
    foreach ( $list as $daten ) {

        if( $daten == $id ) $error = "stop";

    }

В любом случае вышеуказанные значения соответствуют(по счету после запятых):
309 - это именно Сезон 1 (серия 1)
26- это именно Сезон 6 (серия 11)
80 - это именно Сезон 12 (серия 2)

Мне нужно сначала узнать какий по счету определенный ИД из таблицы "news_id" и вывести такую же по счету серию из таблицы "series".

Отредактированно iskiz (21.08.2012 15:54:28)

Неактивен

 

#8 21.08.2012 17:42:38

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Получить значение после запятой

Тогда приведите сюда результат запроса: SELECT news_id,series FROM dle_users WHERE name='username'


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson