Size: a a a

2020 July 20

ПА

Попов Алексей... in ru_mysql
хер когда они сделают, болт забили)
источник

ПА

Попов Алексей... in ru_mysql
походу, действительно такие функционалы уже как enterprice и походу oracle спецом не дает много чего реализовать
источник

SS

Sergei Solomatov in ru_mysql
Елена Сонина
всем добрый день. Подскажите 🙏🏻. Имеются данные типа varchar. Данные содержат в себе буквы, цифры, знаки препинания. Мне необходим метрик: если значение содержит буквы, то "0", если значение содержит цифры и/или знаки препинания, то "1". Смотреть столбец итог. Подскажите, какой функцией я могу это увидеть?
Надо использовать регулярные выражения для поиска цифр и конкретных знаков препинания. Я не смогу написать именно нужные тебе, но в сети скорее всего уже есть готовые.
Для использования регулярок есть функция RLIKE
источник

ПА

Попов Алексей... in ru_mysql
Хмм... свои типы MySQL тоже не поддерживает?
источник

SS

Sergei Solomatov in ru_mysql
Попов Алексей
Хмм... свои типы MySQL тоже не поддерживает?
Типы в мускуле определять нельзя к сожалению
источник

V

Vova in ru_mysql
Елена Сонина
всем добрый день. Подскажите 🙏🏻. Имеются данные типа varchar. Данные содержат в себе буквы, цифры, знаки препинания. Мне необходим метрик: если значение содержит буквы, то "0", если значение содержит цифры и/или знаки препинания, то "1". Смотреть столбец итог. Подскажите, какой функцией я могу это увидеть?
select 'abcde'  not regexp '^[a-zA-z]+$';
источник

ПА

Попов Алексей... in ru_mysql
Подскажите, можно ли передать массив или строку разделенными , - запятыми, чтобы потом вставить в запрос select
ну например передаю я текст - 'foo, bar, beer' в итоге надо вставить в запрос select * from mytable where id=5 and name not in ('foo', 'bar', 'beer');
источник

ПА

Попов Алексей... in ru_mysql
Делать concat с кавычками и replace внутри
источник

ПА

Попов Алексей... in ru_mysql
?
источник

ПА

Попов Алексей... in ru_mysql
Или как то можно это сделать красивее?
источник

PM

Pavel Makhnev in ru_mysql
разбей строку на массив и потом вставляй через биндинг
источник

PM

Pavel Makhnev in ru_mysql
ты, конечно, можешь и напряму вставить, но это возможная инъекция
источник

ПА

Попов Алексей... in ru_mysql
Нет, инъекции тут не получится, я пример абстрактно привёл. Это работать будет только в процедуре и только с данными которые никак юзерам не доступны
источник

ПА

Попов Алексей... in ru_mysql
Pavel Makhnev
разбей строку на массив и потом вставляй через биндинг
Вы имеете ввиду курсоры, как-то массивы не могу нагуглить
источник

PM

Pavel Makhnev in ru_mysql
я думал вы про вставку с клиента откуда-то
источник

ПА

Попов Алексей... in ru_mysql
Нет, я про процедуру и нативном sql
источник

ПА

Попов Алексей... in ru_mysql
Наверно короче будет сделать функцию и юзать в процедуре для такой конкатенации и регэксп. Пока чето других мыслей нет
источник

PM

Pavel Makhnev in ru_mysql
а почему не через вложеный запрос?
источник

ПА

Попов Алексей... in ru_mysql
Pavel Makhnev
а почему не через вложеный запрос?
т.е. как? Ну мне надо передать в процедуру что-то типо массива с ID-шниками, т.к. другого выхода как создать переменную IN ids VARCHAR и передавать в нее строку типо 1,2,3,4,5,6,7
(я хз как по другому передать не определенное кол-во ID т.к. их может быть и 2, а может быть и 30)
Я создал пользовательскую функцию StringToQuery в ней принимаю на вход эту строку, делаю concat и делаю replace (там же убираю лишние пробелы если попали, добаляю кавычки)
потом в процедуре вызываю функцию, передав ей ids т.е. SET queryIds = StringToQuery(ids); ну и потом делаю SELECT т.к. мне надо выбрать все строки в таблице кроме этих id-шников, что-то типо
select ..... ..  where m='3' and id not in (queryIds);

Какое решение вы имеете ввиду?
источник

PM

Pavel Makhnev in ru_mysql
должен признать, я запутался в задаче )

вы ведь берете где-то этот список изначальных значений которые not in . Вот туда еще один подзапрос и вставьте
источник