我想在我的数据库中搜索任何包含蝴蝶表情符号的字符串- ?
-使用 regexp
.
例如
SELECT *
FROM `table`
WHERE `text`
REGEXP '?'
我在用 REGEXP
因为我可能想寻找 Hello[[:space:]]world
或者类似的。
我得到了错误
从regexp得到错误“在偏移量0处没有要重复的内容”
这样做有效:
SELECT *
FROM `table`
WHERE `text`
LIKE '%?%'
但是我失去了寻找的能力, flying[[:space:]]?
我的分类是 utf8mb4_unicode_ci
. 数据库是10.0.36-mariadb
2条答案
按热度按时间qrjkbowd1#
听起来您好像没有告诉mysql客户端对字符使用什么编码。最好通过连接参数或
mysqli_charset
(如果使用mysqli,而不是pdo)。另外,在您的版本上运行以下命令:
我怀疑它会给你同样的错误信息。
crcmnpdw2#
老实说,我不知道为什么,但逃离你的蝴蝶会给你想要的输出(至少在我的版本mariadb 10.3.10中,它给出了相同的错误而没有转义)。
(注意双反斜杠,第一个反斜杠是在字符串中转义反斜杠,在正则表达式中产生
\?
)