在 MySQL 中搜索包含新行的文本
Search text containing a new line in MySQL
我有一个存储大量产品的 MySQL table。由于一些错误,我用新行添加了一些产品名称。我需要找到他们。以下查询未列出所有预期数据。
SELECT * FROM `products` WHERE `product_name` REGEXP "\r\n";
尝试
SELECT * FROM `products` WHERE `product_name` REGEXP "\n" or `product_name` REGEXP "\r";
这取决于您使用什么方式换行。
不同的文本编辑器程序使用不同的方式来写新行。
尽量只使用“\n”或“\r”和“\n”的组合。
对我来说是这样的:
SELECT * FROM `products` WHERE `product_name` REGEXP "\n";
http://sqlfiddle.com/#!9/f74000/2
SELECT * FROM `products` WHERE `product_name` REGEXP "\n";
在大多数情况下应该有效
行分隔符从 OS 到 OS 即 \n
(Linux 和 MacOS X),\r
(MacOS 9 岁及以上)和 \r\n
(Windows))。
所以你可以尝试如下:
SELECT * FROM `products` WHERE `product_name` REGEXP "\n" OR `product_name` REGEXP "\r";
以下 select 查询一定适合您
SELECT * FROM `products` WHERE `product_name` REGEXP "[\n\r]";
SELECT * FROM `products` WHERE `product_name` LIKE '%\n\r%';
我有 Oracle 背景,发现这种形式更容易(它适用于 MySql 5.6 on Aws)
希望这可以帮助将来在这里跌跌撞撞的人:)
我有一个存储大量产品的 MySQL table。由于一些错误,我用新行添加了一些产品名称。我需要找到他们。以下查询未列出所有预期数据。
SELECT * FROM `products` WHERE `product_name` REGEXP "\r\n";
尝试
SELECT * FROM `products` WHERE `product_name` REGEXP "\n" or `product_name` REGEXP "\r";
这取决于您使用什么方式换行。 不同的文本编辑器程序使用不同的方式来写新行。
尽量只使用“\n”或“\r”和“\n”的组合。
对我来说是这样的:
SELECT * FROM `products` WHERE `product_name` REGEXP "\n";
http://sqlfiddle.com/#!9/f74000/2
SELECT * FROM `products` WHERE `product_name` REGEXP "\n";
在大多数情况下应该有效
行分隔符从 OS 到 OS 即 \n
(Linux 和 MacOS X),\r
(MacOS 9 岁及以上)和 \r\n
(Windows))。
所以你可以尝试如下:
SELECT * FROM `products` WHERE `product_name` REGEXP "\n" OR `product_name` REGEXP "\r";
以下 select 查询一定适合您
SELECT * FROM `products` WHERE `product_name` REGEXP "[\n\r]";
SELECT * FROM `products` WHERE `product_name` LIKE '%\n\r%';
我有 Oracle 背景,发现这种形式更容易(它适用于 MySql 5.6 on Aws) 希望这可以帮助将来在这里跌跌撞撞的人:)