过滤器字符串在mysql中只包含q

过滤器字符串在mysql中只包含q,mysql,sql,string,where-clause,Mysql,Sql,String,Where Clause,我需要mysql查询的帮助,我写了这个查询 select * from post where content REGEXP '^q' 这个查询是工作的,但它也包含了过滤器中的空格,如果我想做的任何字符串,比如QQQQQQ或者QQQQ或者QQQ或者QQ或Q,只要这个字符串就必须过滤,现在如果我有QQQQ QQ的字符串,那么它又在给我什么结果,它不应该考虑这个空间,有人能帮我解决这个问题吗?你可以像下面这样修复你的regexp: select * from post where content R

我需要mysql查询的帮助,我写了这个查询

select * from post where content REGEXP '^q'

这个查询是工作的,但它也包含了过滤器中的空格,如果我想做的任何字符串,比如QQQQQQ或者QQQQ或者QQQ或者QQ或Q,只要这个字符串就必须过滤,现在如果我有QQQQ QQ的字符串,那么它又在给我什么结果,它不应该考虑这个空间,有人能帮我解决这个问题吗?

你可以像下面这样修复你的regexp:

select * from post where content REGEXP '^q+$';
此正则表达式表示字符串以q开头,在字符串结束之前仅包含1个或多个q符号


上进行测试您可以修复regexp,如下所示:

select * from post where content REGEXP '^q+$';
此正则表达式表示字符串以q开头,在字符串结束之前仅包含1个或多个q符号

上测试,尝试使用此^q+?![\s]+$正则表达式

上面的RegExp将检查以q开头且没有空格的字符串。

尝试使用此^q+?![\s]+$正则表达式


上面的RegExp将检查以q开头且没有空格的字符串。

您不需要使用regex。字符串函数可能更有效。您可以用空字符串替换所有Q,并确保生成的字符串为空:

select * from post where replace(content, 'q', '') = ''
请注意,这也允许使用空字符串。如果您想避免这种情况,那么:

select * from post where content <> '' and replace(content, 'q', '') = ''

你真的不需要正则表达式。字符串函数可能更有效。您可以用空字符串替换所有Q,并确保生成的字符串为空:

select * from post where replace(content, 'q', '') = ''
请注意,这也允许使用空字符串。如果您想避免这种情况,那么:

select * from post where content <> '' and replace(content, 'q', '') = ''

您的表达式仅以q开头,与“q%”之类的内容基本相同。你们的具体规格是什么?q*呢^q表示匹配必须以q开头。您的表达式仅以q开头,与“q%”等内容基本相同。你们的具体规格是什么?q*呢^q表示比赛必须以q开始。