我需要编写一个SQL语句来查找匹配的标记。问题是,在数据库列中,单词的存储方式如下:
¶Klimawandel¶Ökosystem¶Moose¶CO2¶Stickstoffkreislauf¶
因此,如果我想找到单词reis
,并且在一列中的单词Stickstoffkreislauf
就会匹配,因为reis
是Stickstoffkreislauf
的一部分。
因此我想写一个正则表达式来匹配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
答案 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%';
答案 1 :(得分:0)
您是否尝试过使用文字字符? Sql非常棒,使用like '%reis%¶'
应该可以解决问题。查看我为测试目的而制作的SQL Fiddle。