2016-05-24 3 views
2

У меня есть таблица MySQL, в которой хранится большое количество продуктов. По некоторым ошибкам я добавил некоторые названия продуктов с новой строкой. Мне нужно их найти. В следующем запросе не перечислены все ожидаемые данные.Поиск текста, содержащего новую строку в MySQL

SELECT * FROM `products` WHERE `product_name` REGEXP "\r\n"; 
+0

после поиска, вы хотите удалить, что символы? –

+0

Нет, я просто хочу выбрать идентификатор. – Shin

+0

just execute sql - SELECT id FROM 'products' WHERE' product_name' REGEXP "[\ n \ r]"; –

ответ

2

Это зависит от того, что, как вы используете для новой линии. Различные программы для текстового редактора используют другой способ записи новой строки.

Попробуйте использовать только «\ n» или комбинации «\ r» и «\ n».

Для меня работал так:

SELECT * FROM `products` WHERE `product_name` REGEXP "\n"; 
+0

Возможно, он не работает для разделителя строк' \ r' (MacOS 9 и старше) –

1

Попробуйте

SELECT * FROM `products` WHERE `product_name` REGEXP "\n" or `product_name` REGEXP "\r"; 
+0

Возможно, он не работает для разделителя строк '\ r' (MacOS 9 и старше) –

+0

@rev_dihazum Обновлен мой андер – Nikem

2

Разделитель строк зависит ОС OS т.е. \n (Linux и MacOS X), \r (MacOS 9 и старше) и \r\n (Windows)).

Таким образом, вы можете попробовать, как ниже:

SELECT * FROM `products` WHERE `product_name` REGEXP "\n" OR `product_name` REGEXP "\r"; 
0

После выбора запроса должен работать для вас

SELECT * FROM `products` WHERE `product_name` REGEXP "[\n\r]";