Mysql запрос

12
hYPER-ok
На сайте с 09.10.2010
Offline
71
1230

Ребят, помогите составить запрос. В общем, нужно получить допустим 5 значение (через разделитель) из поля с таким содержанием:

pervoe|vtoroe|tretje|chetvertoe|pjatoe|shestoe|sedmoe|vosjmoe|devjatoe

т.е. чтобы возвратило

pjatoe

в доке не нашел подобной функции, сабстринг_индекс не подходит т.к. возвращает вот так

pervoe|vtoroe|tretje|chetvertoe|pjatoe

Надеюсь что помогёте :)

SK
На сайте с 31.08.2007
Offline
81
#1

тут проще получить нормально, и уже разобрать в php или другом языке....

зачем с mysql извращаться....

$arr = explode('|',$string);

$res = $arr[4];

Нужен перенос информации? Информеры на сайт? Сграбить контент? Создать базу товаров? Изготовление любых парсеров! (/ru/forum/836197)
N
На сайте с 22.11.2008
Offline
181
#2
hYPER-ok:
Ребят, помогите составить запрос. В общем, нужно получить допустим 5 значение (через разделитель) из поля с таким содержанием:
pervoe|vtoroe|tretje|chetvertoe|pjatoe|shestoe|sedmoe|vosjmoe|devjatoe

т.е. чтобы возвратило
pjatoe

в доке не нашел подобной функции, сабстринг_индекс не подходит т.к. возвращает вот так
pervoe|vtoroe|tretje|chetvertoe|pjatoe

Надеюсь что помогёте :)

в корне неверное понимание проблемы. запрос к бд, а у вас массив из которого выдёргивать средствами языка.

Качественное продвижение ваших сайтов. 12 лет опыта. Договор. ( /ru/forum/899200 ) SEO coaching №7 - Пробуждение силы. Старт 10 ноября! ( /ru/forum/914473 )
I
На сайте с 23.12.2010
Offline
25
#3
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('pervoe|vtoroe|tretje|chetvertoe|pjatoe|shestoe|sedmoe|vosjmoe|devjatoe', '|', 5), '|', -1);

но товарищи выше правильно сказали - какое-то извращение у вас в архитектуре, не sql-ное это дело, стринги разбирать.

N
На сайте с 06.05.2007
Offline
419
#4

ну, например, vbulletin хранит опции голосования в таблице poll подобным способом.

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

Кнопка вызова админа ()
I
На сайте с 23.12.2010
Offline
25
#5
netwind:
ну, например, vbulletin хранит опции голосования в таблице poll подобным способом.
если захочется какую-то нестандартную статистику подсчитать, вероятно придется прибегнуть к подобным вычислениям.

могу придумать 2 варианта

1) непонимание SQL

2) они не применяют SQL для этих данных, обрабатывают данные на PHP, что, обычно, не очень верно

табличка pool вида pool_id, option_num, vote_count

и все становится не просто, а очень просто

SELECT vote_count FROM pool WHERE pool_id = 1 AND option_num = 5;
N
На сайте с 06.05.2007
Offline
419
#6

iopiop, скорее 2. если не согласен - можешь купить и написать им багрепорт.

iopiop:
SELECT vote_count FROM pool WHERE pool_id = 1 AND option_num = 5;

а название пункта голосования как достать?

N
На сайте с 22.11.2008
Offline
181
#7
netwind:
ну, например, vbulletin хранит опции голосования в таблице poll подобным способом.
если захочется какую-то нестандартную статистику подсчитать, вероятно придется прибегнуть к подобным вычислениям.

каким способом? массивом? 😂 У всех данных в бд есть как минимум одно ключевое поле по которому его не составляет труда выцепить.

maldivec
На сайте с 04.11.2008
Offline
160
#8
niggerzzz:
У всех данных в бд есть как минимум одно ключевое поле по которому его не составляет труда выцепить.

Чего это вдруг? Это уже вопрос разработки БД. Могут быть данные и без ключевых полей.

N
На сайте с 22.11.2008
Offline
181
#9
maldivec:
Чего это вдруг? Это уже вопрос разработки БД. Могут быть данные и без ключевых полей.

Можно ссать против ветра, только это малоэффективно и вообще глупо. Хотя если это таблица-справочник то там можно и без ид, обойтись идоми из таблиц юзающих справочник.

---------- Добавлено в 09:06 ---------- Предыдущее сообщение было в 09:04 ----------

maldivec, и вообще я о том что данные в бд не могут храниться

pervoe|vtoroe|tretje|chetvertoe|pjatoe|shestoe|sedmoe|vosjmoe|devjatoe

даже если предположить что это значение определённого поля, то всё равно будет присутствовать доп индификатор.

N
На сайте с 06.05.2007
Offline
419
#10
niggerzzz:
maldivec, и вообще я о том что данные в бд не могут храниться

ну а вот хранятся они так в vbulletin. не веришь - купи и проверь.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий