草庐IT

php - MySQL 查询中的 Yii2 REGEXP

如何在yii2中使用像下面这样的SQL查询?select*fromSkill_NameswhereSkillNameREGEXP'PHP|MYSQL'我不需要像(SkillNameLike%PHP%orSkillNameLike%MYSQL%)这样的东西,因为我需要使用REGEXP。 最佳答案 最简单的是直接查询:Yii::$app->db->createCommand("select*fromSkill_NameswhereSkillNameREGEXP'PHP|MYSQL'")->queryAll();如果您有Skill_Nam

mysql - 使用 REGEXP 在空格分隔列表中查找数字

我正在编写一个SQL查询来选择行,其中以空格分隔数字的字段包含单个数字,在本例中为1。示例字段:"12345111221"-匹配,包含第一"234611101"-不匹配,不包含第一到目前为止最好的查询是:$sql="SELECT*from".$table."WHEREbrandsREGEXP'[/^1$/]'ORDERBYnameASC;";问题是这个REGEXP也找到了11个匹配项我在其他帖子上阅读了很多建议,例如[\d]{1},但结果总是一样的。是否有可能完成我想要的,以及如何完成? 最佳答案 您不需要正则表达式:如果您在列的前

mysql - 如何在 mysql 正则表达式中匹配大写字母ÅÄÖ

当我在MySQL中进行REGEXP比较时,我得到了瑞典字符大写版本的一些奇怪结果。我正在使用utf8_swedish_ci排序规则,我想查找大写的单词。SELECT'Öster'REGEXPBINARY'^[A-ZÅÄÖ][a-zåäö]+$'应返回1并且SELECT'öster'REGEXPBINARY'^[A-ZÅÄÖ][a-zåäö]+$'应该返回0,但我得到相反的结果。SELECT'Öster'REGEXPBINARY'^[A-ZÅÄÖ][a-zåäö]+$'#returns0(incorrect)SELECT'öster'REGEXPBINARY'^[A-ZÅÄÖ][a-zå

使用 REGEXP 的 MYSQL 查询 - 使其非贪婪

我需要一些有关MYSQL查询的正则表达式的帮助,以搜索包含具有精确模式的单元格的行。我是MYSQL正则表达式的新手。这是一个名为test_table的示例表(json_value是一个数组的json字符串)|id|json_value-----------------------------------------------------------------------------------------------|1|{"field_198":false,"field_4":"Fromqualityoffice","field_9":"productwithhighqualit

mysql - 需要 SQL-Regexp 帮助 : Find lowercase char before uppercase char

我需要一个mySQL请求,我只在其中找到在单个单词中包含大写字符和小写字符之前的字符串。示例:fooExample在最好的情况下,只有在大写字符之前至少有2个字符。所以它不应该找到:例如“iPhone”。并且它必须是A-Z之前的a-z范围内的真实字符。我想我应该使用SQL函数REGEXP,但我无法让它工作,因为我对正则表达式不是很熟悉。 最佳答案 SELECTcolFROMtableNameWHEREcolREGEXP'[a-z]{2}[A-Z]' 关于mysql-需要SQL-Regex

mysql - 在 MySQL REGEXP 中使用非捕获组

出于某种原因,我似乎无法在MySQL中使用非捕获组。有没有办法在MySQLREGEXP中使用它们?对于PHP的PCRE实现中的非捕获组,我使用以下语法:(?:[PATTERN]) 最佳答案 MySQL正则表达式中的组不是捕获组,因为在SQL中捕获组没有多大意义……好吧,不是没有添加语法来支持使用捕获的子字符串。所以它不支持(?:)语法,因为这种语法在MySQL中毫无意义——组已经不捕获。因此,([PATTERN])是一个非捕获组。 关于mysql-在MySQLREGEXP中使用非捕获组,

mysql - 在 MySQL 中使用 REGEXP 选择列

所以我有一个包含很多列的表格。假设每一列都包含相似的关键字,仅相差几处。我想根据相似的关键字来选择这些列。起初,这是我的尝试:SELECT*REGEXP'pages_title$'FROM'pages';也就是说,任何以pages_title结尾的列都应该被选中。所以REGEXP应该应用于列的名称,而不是任何条目。这可能吗?我在网上找到的所有示例都与使用REGEXP隔离表中的某些值有关,这不是我想要的。 最佳答案 这不是一个完整的答案,但它可能会有所进展。您可以动态构建查询:declare@qvarchar(1000)set@q='

mysql - 与 MySql REGEX 匹配空格时出现问题

我正在尝试匹配数据库中所有与此示例“(11)1234-5678”的格式不匹配的电话。由于空格,我在定义正则表达式时遇到了麻烦,我已经完成了以下测试:SELECT'(11)1234-5678'REGEXP"\([0-9]{2}\)"->1SELECT'(11)1234-5678'REGEXP"\([0-9]{2}\).*"->1SELECT'(11)1234-5678'REGEXP"\([0-9]{2}\)"->0SELECT'(11)1234-5678'REGEXP"\([0-9]{2}\)[:blank:]"->0SELECT'(11)1234-5678'REGEXP"\([0-9]

MySQL REGEXP 用于以开头的数字

我需要使用MYSQLREGEXP编写一个查询,该查询将找到具有特定列以11或12等开头的行。我知道我可以使用LIKE或LEFT(####,2)但我想使用REGEXP选项。我的数据存储为110001、122122、130013a等。编辑1:为了表达的更清楚,我想表达一下SELECT*FROMtableWHEREcolumnLIKE'11%'orcolumnLIKE'12%'orcolumnLIKE'30%'"使用正则表达式谢谢! 最佳答案 要匹配以任意两位数字开头的行,您可以使用:SELECT*FROMyourtableWHEREyo

MySQL REGEXP 字边界 [[ :<:]] [[:>:]] and double quotes

我试图用MySQLREGEXP函数匹配一些全词表达式。当涉及双引号时,就会出现问题。MySQL文档说:“要在正则表达式中使用特殊字符的文字实例,请在其前面加上两个反斜杠()字符。”但是这些查询都返回0:SELECT'"word"'REGEXP'[[::]]';->0SELECT'"word"'REGEXP'[[::]]';->0SELECT'"word"'REGEXP'[[::]]';->0SELECT'"word"'REGEXP'[[::]]';->0SELECT'"word"'REGEXP'[[::]]';->0我还能尝试什么来获得1?或者这是不可能的?