170 похожих чатов

Кто-Нибудь разбивал строку в sqlite может есть какой-то best practice,

что делать лучше, разбивать строку после выполнения запроса,
или делать .create_function?
select название from table выдает результат: ФИО, ФИО2 итак далее
Хочется поработать с полем, может как-то сгруппировать, но ведь до split это невозможно сделать, поэтому интересно best practice, чтобы обычно делают в таких ситуациях.

12 ответов

7 просмотров

В смысле сгруппировать невозможно? Думаю стоит подтянуть sql. Логика должна быть простая - все, что можно выполнить в базе данных для получения результатов, на ней и выполняется. Дальше уже в коде работаешь с полученным результатом. Иначе как-то получается не даёшь логично, когда просто выгружаешь данные, а потом пишешь логику которую можно было бы на стороне сервера баз данных сделать.

Daniil-Yogurt Автор вопроса
Pavel Glukhov
В смысле сгруппировать невозможно? Думаю стоит под...

Ну да невозможно, потому что данные не разбиты, как я написал в примере, Данные записаны через запятую

Daniil Yogurt
Ну да невозможно, потому что данные не разбиты, ка...

У тебя что-ли прям в поле данные через запятую записаны?

Daniil-Yogurt Автор вопроса

Да все верно именно так) Есть одно поле такое), все остальные нормальные). А в этом поле данные перечислены через запятую, поэтому я и стал думать какова практика решения таких проблем, и первое что пришло в голову, получить результат и только потом питоном разбивать как надо, но тогда не удастся применить группировку итак далее )

Daniil Yogurt
Да все верно именно так) Есть одно поле такое), вс...

Можно использовать common table expression и разбить на уровне базы данных, но запрос будет немного сложнее чем простой select. Проще на уровне питона полученный результат разбить. Чисто логически, в то поле просится связь 'многие к многим'

Daniil-Yogurt Автор вопроса
Pavel Glukhov
Можно использовать common table expression и разб...

А может попробовать .create_function удавалось применять ?

Не доводилось использовать, к сожалению не могу подсказать. Тут вопрос - не усложнит ли логику? И не проще ли 1 раз сплит использовать на результате?

Daniil-Yogurt Автор вопроса
Pavel Glukhov
Не доводилось использовать, к сожалению не могу по...

Сплит питоном да уже сделал, просто теперь хотелось именно в скуле попробовать нахимичить, либо хотя бы с пользовательскими функциями, но пока опыта видимо не хватает применить, пользовательские обычно применяют для lower поля, в общем какие-то простые операции, с единичными по сути данными.

Daniil Yogurt
Сплит питоном да уже сделал, просто теперь хотелос...

https://stackoverflow.com/questions/24258878/how-to-split-comma-separated-value-in-sqlite

Daniil-Yogurt Автор вопроса
Pavel Glukhov
https://stackoverflow.com/questions/24258878/how-t...

гуглить умею этот вариант видел), фигня, расчитано на то что ты знаешь какое количество у тебя будет в строке.

Daniil-Yogurt Автор вопроса
Pavel Glukhov
https://stackoverflow.com/questions/24258878/how-t...

ну вроде что-то получилось, видел это решение до этого, думал может проще есть что-то. в принципе запрос получился.

Daniil-Yogurt Автор вопроса
Pavel Glukhov
https://stackoverflow.com/questions/24258878/how-t...

Оказывается был такой вариант GROUP_CONCAT может пригодиться кому)

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
Карта сайта