SQL 多字段条件查询

SQL 多字段条件查询

一个数据库表,几十个字段,查找任意字段里包含北京的记录,在 mysql 里这句 sql 应该是这样:

SELECT * FROM table WHERE concat(field1,field2,field3……fieldn) like ‘% 北京 %’

反正是少不了将几十个字段名称都输入一遍;从另外一个角度考虑,有没有个记录的概念,直接针对记录操作呢?所以期望:

SELECT * FROM table WHERE concat(RECORD) like ‘% 北京 %’

解答

先看集算器SPL语言的答案:

A2从数据库把数据取出来

A3用select函数进行条件过滤

~就指代的是当前记录;

~.array()得到整条记录的序列(可以理解为 JAVA 里的数组,只是这个数组比较广义,元素可以是任意数据类型);

~.array().concat(",")把整条记录就拼成了个大字符串;

pos(~.array().concat(","),"北京 ")在整条记录拼成的大字符串里查找北京出现的位置,不等于 -1 则表示找到了。

缺少了记录这个概念,好多查询需求做起来就都不顺手了。

再举个条件里需要其它记录的例子。销售额已经按照日期排好序了,想查找第二天销售额突然下降超过 10 万元的日期。这个难点在于要表示出:当前记录的销售额下一条记录的销售额。

~.销售额当前记录的销售额

~ [1].销售额下一条记录的销售额

还可以依次类推,~[-1] 是前一条记录,~[3] 是当前记录后面的第三条记录;

SPL语言从理论模型上做了大量的这类创新,能极大的提高描述计算的能力,可以想象掌握了 SPL 语言的你,一个人维护的数据计算业务量,能顶替十个传统 JAVA/ 数据库 SQL 程序员,那价值自然是不明而喻的。

相关推荐

  1. SQL效率-查询条件需避免使用函数处理索引字段

    2023-12-25 11:42:03       51 阅读
  2. sql语句条件查询,模糊查询

    2023-12-25 11:42:03       54 阅读
  3. JPA构建条件查询

    2023-12-25 11:42:03       59 阅读
  4. elasticsearch之条件查询

    2023-12-25 11:42:03       41 阅读
  5. thinkphp:数据库条件查询

    2023-12-25 11:42:03       26 阅读
  6. mybatis字段模糊查询

    2023-12-25 11:42:03       61 阅读
  7. Elasticsearch 索引条件过滤:字段匹配

    2023-12-25 11:42:03       54 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-25 11:42:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-25 11:42:03       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-25 11:42:03       82 阅读
  4. Python语言-面向对象

    2023-12-25 11:42:03       91 阅读

热门阅读

  1. 【WPF.NET开发】绑定源

    2023-12-25 11:42:03       63 阅读
  2. WPF Border

    2023-12-25 11:42:03       57 阅读
  3. Pandas 高级教程——数据可视化

    2023-12-25 11:42:03       48 阅读
  4. 有意思、好用的免费API分享

    2023-12-25 11:42:03       53 阅读
  5. ACE中为socket增加keepalive策略(windows和linux)

    2023-12-25 11:42:03       66 阅读
  6. ubuntu常用指令

    2023-12-25 11:42:03       61 阅读
  7. C语言例题6

    2023-12-25 11:42:03       53 阅读