Компьютерный форум NoWa.cc Здесь может быть Ваша реклама
Правила Форума
редакция от 22.06.2020
Портал .::2BakSa.WS::.
Вернуться   Компьютерный форум NoWa.cc > В помощь вебмастеру > Программирование > Базы данных

Уважаемые пользователи nowa.cc и 2baksa.ws. У нас сложилось тяжёлое финансовое положение. Мы работаем для вас вот уже более 15 лет и сейчас вынуждены просить о помощи. Окажите посильную поддержку проектам. Мы очень надеемся на вас. Реквизиты для переводов ниже.
Webmoney Webmoney WMZ: 826074280762 Webmoney WME: 804621616710
PayPal PayPal_Email E-mail для связи по вопросу помощи
Кошелёк для вашей помощи YooMoney 4100117770549562
YooMoney Спасибо за поддержку!
Ответ
 
Опции темы Опции просмотра Language
Старый 02.12.2014, 15:54   #1
Неактивный пользователь
 
Пол:Женский
Регистрация: 20.12.2007
Сообщений: 8
Репутация: 5
По умолчанию MySQL запрос чем заменить replace

Добрый вечер всем.
Помогите решить задачу.
Есть 2 таблицы, содержащие 2 колонки: id, Details
к примеру:
t1 (1, "As,df.'ff"; 2, "BBB$BQ"; 3, "FFQQ")
t2 (2, "Asd,ff'f"; 2, "BBBQ"; 3, "FF.QQ")

нужно получить те строки, в которых совпадают id, но не совпадают "title", предварительно с удалёнными оттуда "лишними символами": пробелы, переводы строк, знаки пунктуации, сочетание "$B", желательно перевести в один регистр
то есть по примеру в результат должна попасть только строка с id 3

я могу только составить ёлоку из replace:

SELECT a.`entry`,
replace(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(RE PLACE(a.`Details`, '$B', ''), ' ', ''), "\n", ''), '\'', ''), '$b', ''), '.', ''), ',', as det_a,
REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(b.`Details `, '$B', ''), ' ', ''), "\n", ''), '\'', ''), '$b', '') as det_b
FROM `t1` as a
inner join `t2` as b
ON a.`entry` = b.`entry`
WHERE not (Replace(REPLACE(REPLACE(REPLACE(REPLACE(a.`Detail s`, '$B', ''), ' ', ''), "\n", ''), '\'', ''), '$b', '') = Replace(REPLACE(REPLACE(REPLACE(REPLACE(b.`Details `, '$B', ''), ' ', ''), "\n", ''), '\'', ''), '$b', ''))
Дева вне форума
 
Ответить с цитированием Вверх
Здесь может быть Ваша реклама
Здесь может быть Ваша реклама


Реклама: заказ букетов из конфетРекомендуем КНС Нева - ссд на 2 тб - поставщик техники для дома и бизнеса в Санкт-Петербурге.смотреть фильм перевозчик 4центробежная литьевая машинаConecte Airtable a Elementor


Старый 28.09.2015, 14:03   #2
DmitryK1
Неактивный пользователь
 
Пол:Мужской
Регистрация: 18.01.2008
Сообщений: 10
Репутация: 1
По умолчанию Re: MySQL запрос чем заменить replace

Не знаю, поддерживает ли такое мускуль:
Код:
select TRANSLATE(UPPER('АБВ# -,;ГДЕЁЖЗИЙКЛМНО# -,;ПРСТУФХЦЧШЩ# -,;ЪЫЬЭЮЯ'),'# -,;',' ') from dual
а результат один раз реплейснуть.

Или, как вариант, функция которая делает эти реплейсы. а ты просто к ней обращаешься. Ну или почистить исходные данные и производить сравнение.
__________________
E-Ten M600 / WinMobile 5.0 / 4Gb
DmitryK1 вне форума
 
Ответить с цитированием Вверх
Ответ


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
> Сложный запрос в MySQL TITANiusIK Веб - Программирование 1 11.08.2009 14:42
SQL Запрос McAccess2007 (Запрос с 3 таблиц - дублирование ) Dr Evil Базы данных 3 23.07.2009 09:06
Помогите разобрать запрос mysql Iankov Базы данных 2 04.01.2009 17:50
Actual Search & Replace scaM Варезник 0 07.07.2008 16:00

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 04:20. Часовой пояс GMT +3.


Copyright ©2004 - 2024 2BakSa.WS

Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot
Время генерации страницы 0.16953 секунды с 11 запросами