MySQL:正则表达式&通配符

时间:2016-10-03 18:02:53

标签: mysql regex wildcard

在MYSQL表中,我有多个文本条目,其字段为

无效之后:2016年12月2日19:40:51 GMT

我要做的是使用REGEXP查找这些条目并忽略任何小于格林威治标准时间2016年12月31日23:59:59的内容。最好的方法是什么?

示例:SEARCH_STRING其中TABLE_COLUMN REGEXP“无效后:blah blah”小于2016年12月31日23:59:59 GMT。

我知道这个例子有点缺乏正确的语法,但我确信你会得到我所得到的要点。如何设置日期,将其与隐藏在较大文本详细信息中的特定字符串中列出的日期进行比较,并忽略now()和预设时间(年末)之间的任何内容?

2 个答案:

答案 0 :(得分:1)

这是另一种方法:

YEAR(STR_TO_DATE(COLUMN, 'Not Valid After: %b %d %H:%i:%s %Y GMT')) < 2017

答案 1 :(得分:0)

我可能会对数据库进行规范化,因此列只是一个日期,然后您可以使用标准比较函数(<html lang="pt-BR"> <body> // omitted content, body content of index view, with gridview etc. <div id="ajaxCrudModal" class="fade modal in" role="dialog" tabindex="-1" style="display: block;"> <div class="modal-dialog "> <div class="modal-content"> <div class="modal-body"><div class="panel"> <div class="panel-body" style="height: 600px"> // omitted content </div> </div> <script src="/yii2/basic/assets/32e507bc/jquery.js"></script> <script src="/yii2/basic/assets/9f23c46b/yii.js"></script> <script src="/yii2/basic/assets/9f23c46b/yii.validation.js"></script> <script src="/yii2/basic/assets/9f23c46b/yii.activeForm.js"></script> <script src="http://leafo.net/sticky-kit/src/sticky-kit.js"></script> <script type="text/javascript"> //$('body').on('load', function(){ $('.panel-heading').stick_in_parent(); //}); </script> </div> <div class="modal-footer"></div> </div> </div> </div> <script src="/yii2/basic/assets/32e507bc/jquery.js"></script> <script src="/yii2/basic/assets/9f23c46b/yii.js"></script> <script src="/yii2/basic/assets/fb64637f/js/bootstrap.js"></script> <script src="/yii2/basic/assets/9f23c46b/yii.validation.js"></script> <script src="/yii2/basic/assets/9f23c46b/yii.activeForm.js"></script> <script src="/yii2/basic/assets/28255cf7/dist/js/bootstrap-dialog.js"></script> <script src="/yii2/basic/assets/9f23c46b/yii.gridView.js"></script> <script src="/yii2/basic/assets/75fbd502/js/kv-grid-action.js"></script> <script src="/yii2/basic/assets/8d08c7cb/jquery.pjax.js"></script> </body></html> )。或者,您可以使用与4年整数匹配的正则表达式。类似的东西:

<=
在mysql中

它可以用作:

Not Valid After .* (20([0][0-9]|1[0-6])|1[0-9]{3}) GMT"

示例:http://sqlfiddle.com/#!9/26b735/4

随着时间的推移,您需要增加角色等级COLUMN not REGEXP "Not Valid After .* (20([0][0-9]|1[0-6])|1[0-9]{3}) GMT" ;明年1[0-6]