Size: a a a

2020 July 18

М

Марк in ru_mysql
Привет) И снова рубрика нубских вопросов))

В таблице есть столбец в текстовом формате. Нужно вытянуть оттуда аббревиатуру  ВПР и следующие 5 символов после нее. Там может быть ВПР 5, или ВПР -5, или ВПР:  16 и какие угодно еще варианты, всех я не знаю.

Гуглил про извлечение подстрок, но нашел только, как извлекать по порядковому номеру символов. Но в моем случае порядок символов может отличаться.

Не подскажете, пжл, как это сделать?
источник

NM

Narek Markosyan in ru_mysql
Марк
Привет) И снова рубрика нубских вопросов))

В таблице есть столбец в текстовом формате. Нужно вытянуть оттуда аббревиатуру  ВПР и следующие 5 символов после нее. Там может быть ВПР 5, или ВПР -5, или ВПР:  16 и какие угодно еще варианты, всех я не знаю.

Гуглил про извлечение подстрок, но нашел только, как извлекать по порядковому номеру символов. Но в моем случае порядок символов может отличаться.

Не подскажете, пжл, как это сделать?
SELECT SUBSTR('AAA ВПР: 44 и еще что-то', LOCATE('ВПР', 'AAA ВПР: 44 и еще что-то'), 6)
источник

NM

Narek Markosyan in ru_mysql
с помощью LOCATE находим где ВПР находится, с помощью SUBSTR отрезаем начиная с этой точки
источник

М

Марк in ru_mysql
Narek Markosyan
с помощью LOCATE находим где ВПР находится, с помощью SUBSTR отрезаем начиная с этой точки
Спасибо, сейчас попробую)
источник

М

Марк in ru_mysql
Narek Markosyan
с помощью LOCATE находим где ВПР находится, с помощью SUBSTR отрезаем начиная с этой точки
То что нужно!)
источник
2020 July 19

JS

Jon Snow in ru_mysql
Люди есть тут кто связывал mysql с джанго?
источник
2020 July 20

ПА

Попов Алексей... in ru_mysql
Jon Snow
Люди есть тут кто связывал mysql с джанго?
у меня сайт работает с mysql+django только я просто модели делал и миграции, не делал sp
источник

ПА

Попов Алексей... in ru_mysql
Подскажите, в хранимой процедуре задать дефолтное значение реально? что то пытаюсь сделать IN isMain TINYINT DEFAULT 0, но ошибка
источник

ЕС

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

ПА

Попов Алексей... in ru_mysql
Здравствуйте, подскажите CALL SP_Test1 возвращает один столбец MyField = 12345 (просто как пример), в другой процедуре допустим SP_Test2 я вызываю процедуру CALL SP_Test1 как мне записать результат этой процедуры в переменную, чтобы дальше с ней работать?
источник

ПА

Попов Алексей... in ru_mysql
CREATE PROCEDURE `SP_Test1`()
BEGIN
 DECLARE MyField VARCHAR(10);
 SET MyField = '12345';
 SELECT MyField;
END

CREATE PROCEDURE `SP_Test2`()
BEGIN
 CALL SP_Test1
 -- ????????????????????
END
источник

SS

Sergei Solomatov in ru_mysql
Попов Алексей
Здравствуйте, подскажите CALL SP_Test1 возвращает один столбец MyField = 12345 (просто как пример), в другой процедуре допустим SP_Test2 я вызываю процедуру CALL SP_Test1 как мне записать результат этой процедуры в переменную, чтобы дальше с ней работать?
Результат выполнения процедуры не записать. В процедуре ты можешь выполнить несколько селектов и что из этого нужно записать не совсем понятно.
В твоём случае есть два решения:
1. Используй функцию а не процедуру. Тогда можно возвращать результат и записывать его в переменную
2. Используй сессионные переменные @. Во внутренней процедуре назначаешь результат в эту переменную, а во внешней процедуре используешь эту переменную дальше. Так как вызовы call происходят из одной клиентской сессии, эта переменная сохранит свое значение между вызовами.
источник

SS

Sergei Solomatov in ru_mysql
Попов Алексей
Подскажите, в хранимой процедуре задать дефолтное значение реально? что то пытаюсь сделать IN isMain TINYINT DEFAULT 0, но ошибка
В mysql нельзя делать дефолтные значения для входных переменных функций или процедур, к сожалению (
источник

ПА

Попов Алексей... in ru_mysql
Sergei Solomatov
Результат выполнения процедуры не записать. В процедуре ты можешь выполнить несколько селектов и что из этого нужно записать не совсем понятно.
В твоём случае есть два решения:
1. Используй функцию а не процедуру. Тогда можно возвращать результат и записывать его в переменную
2. Используй сессионные переменные @. Во внутренней процедуре назначаешь результат в эту переменную, а во внешней процедуре используешь эту переменную дальше. Так как вызовы call происходят из одной клиентской сессии, эта переменная сохранит свое значение между вызовами.
Спасибо! Понял, в принципе пока думал как, понял, что можно и без этого обойтись) За @ - собаку спасибо) точно, они же сохраняют состояние))
Спасибо за ответ
источник

ПА

Попов Алексей... in ru_mysql
Sergei Solomatov
В mysql нельзя делать дефолтные значения для входных переменных функций или процедур, к сожалению (
вот это, прям разочарование (((
Понял, спасибо... как же трудно приспособиться после mssql
источник

ПА

Попов Алексей... in ru_mysql
блин, mariadb ведь комьюнити поддерживается, странно, что такой функционал не внесли
источник

ПА

Попов Алексей... in ru_mysql
https://jira.mariadb.org/browse/MDEV-10862
Хмм.. запрос хотя есть, возможно когданибудь)
источник

SS

Sergei Solomatov in ru_mysql
Скоро тикеиу стукнет 5 лет, возможно когда-нибудь)
источник

ПА

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

ПА

Попов Алексей... in ru_mysql
ахахах)) уже 15 лет просят
источник