根据docs选择一个REGXP将始终产生一个布尔值(匹配或非匹配)但我试图得到结果,如果它是一个匹配,意味着我正在做... < / p>
select file_id REGEXP '^\d{10}' from my_table;
我想要的不是假或真,而是假或者是启动file_id的实际10位数。
我错过了什么吗?或者这真的是mySQL如何实现regexp?!
我意识到在我的情况下,我可以使用SUBSTR,但现在我只是好奇为什么他们会偏离正则表达式匹配在其他地方工作的规定范数。
答案 0 :(得分:1)
在回答你的问题时,“这真的是MySQL如何实现regexp吗?”答案是肯定的。它只是在成功或失败时返回一个布尔值来匹配。
在回答你的问题时,“他们为什么会偏离规定的规范”,答案是在查询中更有用的是布尔返回,因为你经常测试某些东西的存在,而不是提取某种东西,基于一种模式。通常使用过程语言而不是关系数据库来提取事物。
要执行您希望它执行的操作,您可能需要编写一个执行必要字符串操作的存储过程。