|
UPDATE REPLACE %
|
|||
---|---|---|---|
#18+
Всем доброго времени) Не первый раз в БД, но первую неделю в MySql, половину из которой провела разбираясь с этим: пишу UPDATE world.city SET world.city.Name = REPLACE(world.city.Name, 'A', '-'); получаю что-то типа '3857', '-nchorage', 'USA', 'Alaska', '260283' '1506', '-ncona', 'ITA', 'Marche', '98329' '2155', '-nda', 'CHN', 'Heilongjiang', '136446' '3506', '-ndijon', 'UZB', 'Andijon', '318600' '1433', '-ndimeshk', 'IRN', 'Khuzestan', '106923' '2369', '-ndong', 'KOR', 'Kyongsangbuk', '188443' вместо '3857', 'Anchorage', 'USA', 'Alaska', '260283' '1506', 'Ancona', 'ITA', 'Marche', '98329' '2155', 'Anda', 'CHN', 'Heilongjiang', '136446' '3506', 'Andijon', 'UZB', 'Andijon', '318600' '1433', 'Andimeshk', 'IRN', 'Khuzestan', '106923' '2369', 'Andong', 'KOR', 'Kyongsangbuk', '188443' но, когда использую в подстроке поиска символ %, типа так UPDATE world.city SET world.city.Name = REPLACE(world.city.Name, 'A%', '-'); ни одной строки в бд не меняется( ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2019, 00:27 |
|
UPDATE REPLACE %
|
|||
---|---|---|---|
#18+
Для функции REPLACE знак процента ничем не отличается от любого другого символа. Поскольку в именах городов подстрока 'A%' нигде не встречается, то они и не изменяются. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2019, 00:39 |
|
UPDATE REPLACE %
|
|||
---|---|---|---|
#18+
miksoft, спасибо) Не могу найти управляющие символы для REPLACE, нельзя разве их использовать, как % или * ? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2019, 00:43 |
|
UPDATE REPLACE %
|
|||
---|---|---|---|
#18+
vasiliska_skaНе могу найти управляющие символы для REPLACEТаких нет. См. https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_replace Если версия MySQL 8 и выше, то см. REGEXP_REPLACE ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2019, 00:50 |
|
UPDATE REPLACE %
|
|||
---|---|---|---|
#18+
miksoft, прошу прощения, я, видимо, деревянная( такой запрос SELECT world.city.Name FROM world.city WHERE world.city.Name REGEXP '^A...a$' выдает 15 нужных результатов, а такой SELECT world.city.Name FROM world.city WHERE world.city.Name REGEXP '^A*a$' ни одного.. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2019, 01:28 |
|
UPDATE REPLACE %
|
|||
---|---|---|---|
#18+
Первый вариант - начало строки, буква "А", три любых символа (точка), буква "а", конец строки. Второй вариант - начало строки, буква "А" в количестве от нуля и больше (звезда), буква "а", конец строки. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2019, 01:41 |
|
UPDATE REPLACE %
|
|||
---|---|---|---|
#18+
vkle, хмм, тогда совсем не понимаю и не могу найти, а как произвольное кол-во символов? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2019, 01:50 |
|
UPDATE REPLACE %
|
|||
---|---|---|---|
#18+
vasiliska_ska, 1. Сперва задается символ или символьный класс (в прямоугольных скобках) или последовательность (в круглых скобках). 2. Количество этого, заданного в пункте первом, определяется квантификатором, следующим за ним. Если квантификатор отсутствует - одна штука. Дальше варианты. Звезда - любое количество (ноль или больше). Плюс - один или больше. Вопрос - ноль или один (может быть или не быть). Ну и в фигурных скобках можно указать явно количество или диапазон количества. Подробные примеры есть в описании синтаксиса https://dev.mysql.com/doc/refman/8.0/en/regexp.html#regexp-syntax Таким образом, "произвольное кол-во символов" - это звезда, если ноль входит в понятие "произвольное количество" и плюс, если ноль не является допустимым произвольным количеством. Вроде, простой вопрос, но не вполне однозначен. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2019, 02:22 |
|
UPDATE REPLACE %
|
|||
---|---|---|---|
#18+
vkleТаким образом, "произвольное кол-во символов" - это звезда, если ноль входит в понятие "произвольное количество" и плюс, если ноль не является допустимым произвольным количеством. Вроде, простой вопрос, но не вполне однозначен. :) это понимаю, видимо неправильно выразилась: произвольное количество произвольных символов ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2019, 09:56 |
|
UPDATE REPLACE %
|
|||
---|---|---|---|
#18+
Или надоумте, пожалуйста, бедную девушку, в целом проблема такая: хочу из этого : 1, 'svt-413-asdf', 2, 'svt-414-fdgffr', 3, 'svt-4124-ssxsx', 4, 'svt-11-fefw', получить это: 1, 'asdf', 2, 'fdgffr', 3, 'ssxsx', 4, 'fefw', иными словами заменить подстроку 'svt-&-' (если предположить, что % - произвольное кол-во произвольных символов) на пустую строку '' ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2019, 10:11 |
|
UPDATE REPLACE %
|
|||
---|---|---|---|
#18+
vasiliska_skaпроизвольное кол-во произвольных символов.* или .+ по ситуации. Точка - любой символ. Точнее, почти любой и зависит от модификатора match_type). Ваш вариант в зависимости от исходных данных и точности определения можно так реализовать Код: sql 1.
или так Код: sql 1.
или так Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2019, 10:37 |
|
UPDATE REPLACE %
|
|||
---|---|---|---|
#18+
vasiliska_skaВсем доброго времени) Не первый раз в БД, но первую неделю в MySql, половину из которой провела разбираясь с этим: пишу UPDATE world.city SET world.city.Name = REPLACE(world.city.Name, 'A', '-'); получаю что-то типа '3857', '-nchorage', 'USA', 'Alaska', '260283' '1506', '-ncona', 'ITA', 'Marche', '98329' '2155', '-nda', 'CHN', 'Heilongjiang', '136446' '3506', '-ndijon', 'UZB', 'Andijon', '318600' '1433', '-ndimeshk', 'IRN', 'Khuzestan', '106923' '2369', '-ndong', 'KOR', 'Kyongsangbuk', '188443' вместо '3857', 'Anchorage', 'USA', 'Alaska', '260283' '1506', 'Ancona', 'ITA', 'Marche', '98329' '2155', 'Anda', 'CHN', 'Heilongjiang', '136446' '3506', 'Andijon', 'UZB', 'Andijon', '318600' '1433', 'Andimeshk', 'IRN', 'Khuzestan', '106923' '2369', 'Andong', 'KOR', 'Kyongsangbuk', '188443' но, когда использую в подстроке поиска символ %, типа так UPDATE world.city SET world.city.Name = REPLACE(world.city.Name, 'A%', '-'); ни одной строки в бд не меняется( Для поиска и замены по регвыражениям нужны другие функции. https://dev.mysql.com/doc/refman/8.0/en/regexp.html#function_regexp-replace ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2019, 10:46 |
|
UPDATE REPLACE %
|
|||
---|---|---|---|
#18+
vasiliska_skaхочу из этого : 1, 'svt-413-asdf', 2, 'svt-414-fdgffr', 3, 'svt-4124-ssxsx', 4, 'svt-11-fefw', получить это: 1, 'asdf', 2, 'fdgffr', 3, 'ssxsx', 4, 'fefw', Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2019, 11:01 |
|
UPDATE REPLACE %
|
|||
---|---|---|---|
#18+
Akina, vkle, спасибо!! определенная ясность появилась. и SUBSTRING_INDEX и REGEXP_REPLACE более менее понятны. Не могу разобраться, как им в качестве первого аргумента не один String подсунуть, а всю пачку из, например, SELECT field_name FROM table_name? Только хранимой процедурой с циклом? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2019, 12:18 |
|
UPDATE REPLACE %
|
|||
---|---|---|---|
#18+
Зачем хранимку то? И то и другое - готовые функции. Вместо явно заданной строки пишите имя поля и пользуйтесь на здоровье. А строка в качестве аргумента - это для демонстрации, чтобы с таблицей не париться. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2019, 12:55 |
|
UPDATE REPLACE %
|
|||
---|---|---|---|
#18+
vasiliska_skaкак им в качестве первого аргумента не один String подсунуть, а всю пачку из, например, SELECT field_name FROM table_name? Только хранимой процедурой с циклом?Вот нафига? может, пора попробовать понять, как работает SQL-сервер? это в каком-нить VBA ты шерстишь записи в массиве по одной - а сервер тебе обрабатывает и отдаёт сразу готовый массив результатов, просто перебирай записи. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2019, 13:24 |
|
UPDATE REPLACE %
|
|||
---|---|---|---|
#18+
Akinaможет, пора попробовать понять, как работает SQL-сервер? пойду гуглить матчасть) Akinaпросто перебирай записи. а вот это никак не смогла нагуглить, пробовала Код: sql 1.
ругается, что подзапрос выдает больше 1 строки, добавляла in, any - тоже никак( Код: sql 1.
возражает, что Error Code: 1054. Unknown column 'field list'. намекните, пожалуйста, как реализовать, 3 часа 47 минут до часа Х) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2019, 16:15 |
|
UPDATE REPLACE %
|
|||
---|---|---|---|
#18+
vasiliska_skaпробовала Код: sql 1.
ругается, что подзапрос выдает больше 1 строки, добавляла in, any - тоже никак(Правильно ругается, должно быть лишь одна запись из одного поля. В общем смысле, глупость это, а не запрос. vasiliska_ska Код: sql 1.
возражает, что Error Code: 1054. Unknown column 'field list'.Таки проверьте, правильно ли имя поля указано. А то в запросе одно, в сообщени об ошибке другое, а в реале может и третье окажется... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2019, 17:01 |
|
UPDATE REPLACE %
|
|||
---|---|---|---|
#18+
И, да, если уж селект и имя поля, то должно быть и FROM table_name ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2019, 17:03 |
|
UPDATE REPLACE %
|
|||
---|---|---|---|
#18+
vkleтаки проверьте, правильно ли имя поля указано. А то в запросе одно, в сообщени об ошибке другое, а в реале может и третье окажется... в таблице, которая для примера идет в MySQL Workbench по умолчанию, пишу Код: sql 1.
и получаю Error Code: 1109. Unknown table 'world.city' in field list хотя есть такая таблица 'world.city'.. где-то с синтаксисом туплю? указываю имя поля(столбца) в формате <имя бд>.<имя таблицы>.<имя столбца> ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2019, 18:01 |
|
UPDATE REPLACE %
|
|||
---|---|---|---|
#18+
Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2019, 19:03 |
|
UPDATE REPLACE %
|
|||
---|---|---|---|
#18+
vasiliska_ska, Такое впечатление сложилось, что Вы пытаетесь методом тыка писать запрос. Доложу Вам, пустая это затея. Почитайте хотя бы про основы SQL, про базовый синтаксис запросов. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2019, 19:43 |
|
UPDATE REPLACE %
|
|||
---|---|---|---|
#18+
vasiliska_skaпишу Код: sql 1.
и получаю Error Code: 1109. Unknown table 'world.city' in field list хотя есть такая таблица 'world.city'..world.city.Name - это поле Name в таблице city в базе данных world. Эта таблица должна 1) существовать 2) видима (как минимум быть указана в секции FROM запроса). И если по первому пункту сказать нечего, то со вторым явные проблемы - в запросе секции FROM в принципе нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2019, 07:54 |
|
|
start [/forum/topic.php?fid=47&msg=39785133&tid=1829257]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
75ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
others: | 311ms |
total: | 479ms |
0 / 0 |