Как узнать колонку с возвратом каретки в Mysql?

0

Я начинаю работать в SQL и пытаюсь запустить такой запрос:

select id from "a_table" where col_value = 'ABCDEF';

Теперь в таблице a_table, col_value имеет как

'ABCDEF'

а также

'ABCD
EF'

(с возвратом каретки)

Мой вопрос заключается в том, как я могу построить свой запрос, чтобы, если я ищу 'ABCDEF' в таблице, где присутствует ABCDEF, и может иметь или не иметь возврата каретки в нем.

  • 1
    где col_value LIKE 'ABCD%';
  • 0
    Благодарю. Но проблема в том, что я не знаю, где именно возврат каретки.
Теги:

3 ответа

2

Попробуйте использовать функцию replace

select id
from "a_table"
where replace(replace(col_value, '\r', ''), '\n', '') = 'ABCDEF'

И если вам нужно, вы можете обновлять bad строки

update "a_table"
set
  col_value = replace(replace(col_value, '\r', ''), '\n', '')
where col_value <> replace(replace(col_value, '\r', ''), '\n', '')

Но перед обновлением желательно проверить их, используя следующий запрос

select
  id,
  col_value,
  replace(replace(col_value, '\r', ''), '\n', '') new_value
from "a_table"
where col_value <> replace(replace(col_value, '\r', ''), '\n', '')
2

Это может решить вашу проблему

select id from "a_table" where replace(col_value,'\n','') = 'ABCDEF';
0

Чтобы получить данные без возврата каретки, пожалуйста, попробуйте

    select id from "a_table" where col_value = 'ABCDEF' and col_value NOT REGEXP "\r\n";
  • 1
    Спасибо всем, с помощью функции замены решена проблема. Как отметил Leran2002, обновление таблицы является следующей задачей.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню