今天遇到一个问题,需要对表中的一个类json字段的内容进行筛选,而筛选的条件是值要大于某个值。因为值的位数并不确定,考虑使用正则表达式进行筛选。

字段格式

类json的key-value字段,示例如下:

  1. create table t1 (a varchar(50));
  2. insert into t1 values ('"xx":"30","yy":"9.8"}');
  3. insert into t1 values ('"xx":"20","yy":"9.9"}');
  4. insert into t1 values ('"xx":"60","yy":"9.5"}');
  5. insert into t1 values ('"xx":"90","yy":"10.0"}');

筛选条件

xx后面的值要求大于20,yy后面的值要求大于9.6

最后的筛选语句

  1. select * from t1 where a regexp '^.*"xx":"((2[1-9])|([3-9][0-9])|([1-9][0-9]{2,}))","yy":"((9\.[7-9])|(10\.)).*}$';

说明

  1. 数字比较采用枚举的方式实现,比如xx,先比较以20开头的2位数,然后是3-9开头的两位数,最后是多位数
  2. 枚举值之间使用管道符号|来实现或的选择。

MySQL使用正则表达式比较字段中的数字的更多相关文章

  1. 在论坛中出现的比较难的sql问题:16(取一个字段中的数字)

    原文:在论坛中出现的比较难的sql问题:16(取一个字段中的数字) 所以,觉得有必要记录下来,这样以后再次碰到这类问题,也能从中获取解答的思路. 问题:取一个字段中的数字http://bbs.csdn ...

  2. 往MySQL数据库datetime类型字段中插入数据库的当前时间

    代码: StringBuilder sb = new StringBuilder(); sb.append(" insert into uosdetailfile ("); sb. ...

  3. C# 使用正则表达式去掉字符串中的数字,或者去掉字符串中的非数字

            /// 去掉字符串中的数字           public static string RemoveNumber(string key)           {            ...

  4. C# 使用正则表达式去掉字符串中的数字

    /// <summary>/// 去掉字符串中的数字/// </summary>/// <param name="key"></param ...

  5. C# .net 使用正则表达式去掉字符串中的数字

    /// <summary>/// 去掉字符串中的数字/// </summary>/// <param name="key"></param ...

  6. mysql面试题:字段中@之前字符相同且大于等于2条的所有记录

    公司发了一张面试题给我,题目如下: 在test数据库中有个flow_user表,找出email字段中@之前字符相同且大于等于2条的所有记录 答案: select substring_index(`em ...

  7. mysql 在查字符串字段中 条件参数传为数字0查到与实际数据不匹配问题

    比如: CREATE TABLE `e` ( `id` int(11) DEFAULT NULL, `status` varchar(255) DEFAULT NULL, `b` varchar(25 ...

  8. 查mysql字段中的数字记录

    select * from a where nameregexp '^[0-9]+$' ;

  9. 使用Java正则表达式提取字符串中的数字一例

    直接上代码: String reg = "\\D+(\\d+)$"; //提取字符串末尾的数字:封妖塔守卫71 == >> 71 String s = monster. ...

随机推荐

  1. spark 1.5.2配置记录

    1)slaves # A Spark Worker will be started on each of the machines listed below. dataNode 2)spark-env ...

  2. sass入门教程

    一.什么是SASS SASS是一种CSS的开发工具,提供了许多便利的写法,大大节省了设计者的时间,使得CSS的开发,变得简单和可维护. 二.安装和使用 2.1 安装 SASS是Ruby语言写的,必须先 ...

  3. MYSQL数据库忘记密码

    1.忘记密码解决办法 Windows下的实际操作如下 1.关闭正在运行的MySQL. 2.打开DOS窗口,转到mysql\bin目录. 3.输入mysqld --skip-grant-tables回车 ...

  4. cygwin下载指南(转)

    http://blog.chinaunix.net/uid-20178959-id-1731456.html

  5. tab事件优化-事件代理

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  6. 面试复习(C++)之快速排序

    #include <iostream> using namespace std; void Quicksort(int *a,int low,int high) { if(low>h ...

  7. android 开发中 添加库文件 和so 文件的存放位置和添加依赖

    so文件一般存储在  main 当中  jniLibs 当中 然后在build.gradle中添加 sourceSets { main { jniLibs.srcDirs = ['src/main/j ...

  8. javamail 发送附件

    1.属性文件 mail.protocol=smtpmail.host=mail.port=mail.auth=truemail.timeout=25000mail.username=mail.pass ...

  9. convertdate

    sample date 2015-09-10 00:00:00 2015-09-09 00:00:00.000 expect iso date, add time zone 2015-09-10T00 ...

  10. c4,configure the debug environment

    Yesterday I found a tiny C compiler (less than 600 line of C code, containing commits) called " ...