6

SELECT title FROM tags WHERE title REGEXP '[\x20]'返回所有带有 x、2 或 0 的事物; SELECT title FROM tags WHERE title REGEXP '\x20'返回字面上 x20 的所有东西

我的实际用例是我想搜索任何可能意外进入控制字符的标签。

4

2 回答 2

3

可能有更好的方法来做到这一点,但这是我想出的:

SELECT title FROM tags WHERE title REGEXP CONCAT('[',CHAR(1),'-',CHAR(31),']')

请注意,这些是十进制字符值,而不是十六进制。我也想不出办法让它找到 NULL 字节(\x00)。

这是使用十六进制文字的替代方法:

SELECT title FROM tags WHERE title REGEXP CONCAT('[', x'01', '-', x'1F', ']')
于 2012-04-24T22:50:24.153 回答
0

我相信您在 mysql shell 中执行此操作,它会自行删除反斜杠。以下对我有用:

select id, data regexp '\\x1F\\x8B\\x08' from ...;
于 2015-01-16T23:04:01.173 回答