mardi 2 décembre 2014

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', ''))




Aucun commentaire:

Enregistrer un commentaire