检测保存在SQLite表中的\n字符?

Kin*_*ing 4 sql sqlite select carriage-return

我设计了一个表,其中一列的数据包含\n字符(作为分隔符,我使用它而不是逗号或其他任何东西).它必须保存\n字符OK,因为在将表加载到DataTable对象后,我可以将值拆分为字符串数组,分隔符为'\n',如下所示:

DataTable dt = LoadTable("myTableName");
DataRow dr = dt.Rows[0]; //suppose this row has the data with \n character.
string[] s = dr["myColumn"].ToString().Split(new char[]{'\n'}, StringSplitOptions.RemoveEmptyEntries);//This gives result as I expect, e.g an array of 2 or 3 strings depending on what I saved before.
Run Code Online (Sandbox Code Playgroud)

这意味着'\n'确实存在于我的表列中.但是当我尝试只选择myColumn中包含\n字符的行时,它没有返回任何行,如下所示:

--use charindex
SELECT * FROM MyTable WHERE CHARINDEX('\n',MyColumn,0) > 0
--use like
SELECT * FROM MyTable WHERE MyColumn LIKE '%\n%'
Run Code Online (Sandbox Code Playgroud)

我想知道我的疑问是不是错了?

我也测试了'\ r \n'和'\ r',但结果是一样的.

如何检测行中是否包含'\n'字符?这是选择我想要的行所必需的(这是我选择'\n'作为分隔符时的设计).

非常感谢你提前!

Bel*_*Bob 8

由于\n是ASCII换行符,请尝试:

SELECT * 
FROM MyTable 
WHERE MyColumn LIKE '%' || X'0A' || '%'
Run Code Online (Sandbox Code Playgroud)

对不起,这只是猜测; 我自己不使用SQLite.