带有¶符号的SQL正则表达式

时间:2014-06-30 17:07:25

标签: mysql sql regex

我需要编写一个SQL语句来查找匹配的标记。问题是,在数据库列中,单词的存储方式如下:

¶Klimawandel¶Ökosystem¶Moose¶CO2¶Stickstoffkreislauf¶

因此,如果我想找到单词reis,并且在一列中的单词Stickstoffkreislauf就会匹配,因为reisStickstoffkreislauf的一部分。

因此我想写一个正则表达式来匹配3个案例:

  • 开头
  • 结尾
  • 开头和结尾

但遗憾的是,由于数据库中的,我不知道从正则表达式开始的位置。有谁知道如何开始这个?谢谢!

以下是我的发言:

SELECT DISTINCT csia.cID, csia.ak_tags, p.cParentID, cv.cvName 
FROM CollectionSearchIndexAttributes csia 
JOIN Pages p ON csia.cID = p.cID 
JOIN CollectionVersions cv ON csia.cID = cv.cID 
WHERE cv.cvisApproved = '1' 
AND csia.ak_tags like '%reis%'

我正在寻找的专栏是csia.ak_tags

¶是unicode 00B6

2 个答案:

答案 0 :(得分:2)

尝试类似于此的类似条款:

csia.ak_tags like '%\\\\u00B6reis\\\\u00B6%'
未经测试,但感觉它可能有效。如果你这样做,调整缺少尾随¶或缺少前导¶是没有问题的。


更新: http://sqlfiddle.com/#!2/a2269/33/0

select * from csia
where ak_tags like concat('%',0xC2B6,'reis',0xC2B6,'%');
<{3}}中的

评论很有帮助


更新#2,结果我们只是在寻找换行符:

select * from CollectionSearchIndexAttributes
where ak_tags like '%\nreis\n%';

Unicode escape sequence in command line MySQL

答案 1 :(得分:0)

您是否尝试过使用文字字符? Sql非常棒,使用like '%reis%¶'应该可以解决问题。查看我为测试目的而制作的SQL Fiddle