草庐IT

regexp_substr

全部标签

mysql - mysql中的mid和substring有什么区别?

我刚刚看到MID()和SUBSTRING()函数返回相同的结果。我想知道两者之间有什么区别?不同别名的功能用法是否相同?SELECTMID('mysample',2,3);SELECTSUBSTRING('mysample',2,3);返回:ysa 最佳答案 作为MySQLdocumentation说:MID(str,pos,len)isasynonymforSUBSTRING(str,pos,len).文档还说MID()SUBSTRING()需要3个参数更灵活。len参数是可选的。当它不存在时,该函数返回以pos开头直到字符串结尾

大数据之Hive:regexp_extract函数

目录一、正则的通配符简介1、正则表达式的符号及意义2、各种操作符的运算优先级:二、regexp_extract函数一、正则的通配符简介1、正则表达式的符号及意义符号含义实列/做为转意,即通常在"/"后面的字符不按原来意义解释如"*“匹配它前面元字符0次或多次,/a*/将匹配a,aa,aaa,加了”/"后,/a/*/将只匹配"a*".匹配任何一个字符^匹配一个输入或一行的开头/^a/匹配"anA",而不匹配"Ana"$匹配一个输入或一行的结尾/a$/匹配"Ana",而不匹配"anA"*匹配前面元字符0次或多次/ba*/将匹配b,ba,baa,baaa+匹配前面元字符1次或多次/ba+/将匹配ba

mysql - 如何在 R 的 sqlQuery 函数中使用 REGEXP

EDIT-1我的实际数据库是MSAccess格式,我正在使用R的RODBC包中的sqlQuery函数导入数据。以下是我正在创建的假数据库,因此我可以使用RSQLite包提供可重现的示例。我想将正则表达式与sqlQuery函数。EDIT-1结束以下是使用RSQLite包的模拟数据库和相关查询。REGEX(或REGEXP)函数不起作用,我不知道为什么。data0这些有效dbGetQuery(con,paste0('select*fromMydatawhere[ID]like\'P9W38\''))dbGetQuery(con,paste0('select*fromMydatawhere[I

mysql - 如何使 GROUP BY SUBSTRING 查询更快?

我有一个具有以下结构的表:idbigNumbertext11200321030011010233"anitemwithsometext"21200321030011014563"anotheritemwithsomemoretext"33120323434432211133"more...."...该表包含大约50,000条记录。我想执行以下查询,但速度很慢:SELECTCOUNT(*),bigNumberFROMitemsGROUPBYsubstr(bigNumber,1,X)其中X在2和19之间变化。创建19列,每列中包含部分数字以便能够使用索引会更快吗?

mysql - 在MySQL中使用REGEXP为搜索引擎随机匹配关键词

我正在尝试使用正则表达式将用户输入的搜索字符串与我的MySQL数据库中条目的标题相匹配。例如,我的数据库中的表中有以下行:idtitle1IM2-Article3FunkyBusiness2IM2-Article4There'snoBusinessThat'snotShowBusiness3IM2-There'snoBusinessThat'snotShowBusiness4CO4-Life'sabusiness当用户搜索“IMArticleBusiness”时,将执行以下查询(使用str_replace将空格替换为“(.*)”):SELECT*FROMmytableWHEREtitl

mysql - MySQL 中 SUBSTRING() 的更快替代方案?

我有一个使用SUBSTRING()作为条件的查询:SELECTp.namep_name,pa.line1p_line1,pa.zipp_zip,c.namec_name,ca.line1c_line1,ca.zipc_zipFROMbankbJOINimport_bundleibONib.bank_id=b.idJOINgeneric_importgiONgi.import_bundle_id=ib.idJOINaccount_importaiONai.generic_import_id=gi.idJOINaccountaONa.account_import_id=ai.idJOINa

MySQL regexp 比 like 慢很多

这个问题在这里已经有了答案:REGEXPperformance(comparewith"LIKE"and"=")(2个答案)关闭7年前。SELECTdataFROMtestWHEREcolREGEXP"asdf_[0-9]+"LIMIT1...一组中的1行(1分43.12秒)SELECTdataFROMtestWHEREcolLIKE"asdf_%"LIMIT1...集合中的1行(0.01秒)regexp可以给我准确的结果,如果我使用likesql,我必须过滤数据。有什么改进的方法吗?顺便说一句:测试有200万行并且会增长。

mysql - 编写 MYSQL REGEXP : greedy vs negated confusion

我正在寻找有关MYSQL查询的正则表达式的帮助。我对表达式相当陌生,并且让自己彻底困惑。我的数据库单元看起来像这样1314{{Hereissomedata}}1213{{Moredatahere}}1112{{Dataahoy}}我正在尝试编写一个表达式来尝试匹配数据集,但仅匹配括号内年份内的数据。例如,假设$year=1314和$term="ahoy"。使用以下正则表达式:$year\{\{.*$term.*\}\}它返回一个匹配项-因为它匹配1112前缀数据集的最后一个“}}”。我不希望它这样做,但尽管阅读了这个贪婪/否定的业务,我还是无法使用语法。实现我所追求的目标的最佳方式是什

mysql - 当 str 包含 'é' 或 'ë' 且 substr 仅包含 'e' 时,INSTR(str,substr) 不起作用

在另一篇关于stackoverflow的帖子中,我读到INSTR可用于按相关性对结果进行排序。我对colLIKE'%str%'和INSTR(col,'str')`的理解是它们的行为相同。排序规则的处理方式似乎有所不同。CREATETABLE`users`(`id`int(11)NOTNULLAUTO_INCREMENT,`name`varchar(64)COLLATEutf8_unicode_ciDEFAULTNULL,PRIMARYKEY(`id`))ENGINE=InnoDBDEFAULTCHARSET=utf8COLLATE=utf8_unicode_ci;INSERTINTOu

mysql - 计数 substring_index

我需要知道substring_index如何只返回与分隔符数量完全匹配的所有行。在这种情况下.例如这个查询:SELECTSUBSTRING_INDEX(ABC,'.',4)FROMxxx只有当行完全像这样(有4个单词)时才应该输出:aaa.bbb.ccc.ddd问题是:这一行也显示了。aaa.bbb 最佳答案 这将返回ABC有3个.分隔符的任何内容。select*fromxxxwherechar_length(replace(ABC,'.',''))+3=char_length(ABC)如果您的定界符是多字符字符串,则需要将3乘以定