如何取得数据库中name字段中“aaabbbcccdddeee”中的"ccc"子串

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何取得数据库中name字段中“aaabbbcccdddeee”中的"ccc"子串相关的知识,希望对你有一定的参考价值。

"aaabbbcccdddeee" 从任意一个开始到任意一个结束怎样截取

参考技术A 从任意一个开始到任意一个结束:
str="aaabbbcccdddeee"
str=mid(str,7,3)
从地7个字符开始取,然后取从第7个字符开始的连续3个字符结束。最后结果是str="ccc"
参考技术B 很多
正则表达式也可以
教你个简单的
str = "aaabbbcccdddeee"
str1 = replace(str,"a","")'把a去掉
str2 = replace(str1,"b","")'把b去掉
str3 = replace(str2,"d","")'把d去掉
str4 = replace(str3,"e","")'把e去掉
最后
str4 = "ccc"
参考技术C select substring(name,7,3);
sqlserver的
substring(源串,起始位置,个数)
参考技术D 正则表达式

Javascript如何按字段在数组中搜索[重复]

【中文标题】Javascript如何按字段在数组中搜索[重复]【英文标题】:Javascript How to search in array by field [duplicate] 【发布时间】:2017-01-13 20:40:34 【问题描述】:

我有一个保存这些数据的变量:

"main":[
  "id":"123","name":"name 1",
  "id":"234","name":"name 2"

  ]

我知道我要搜索的数据的id。

我的问题是...如何搜索 id 234 的名称(例如)是上面的数据?

【问题讨论】:

使用 JSON.parse()。 用for迭代并比较每条记录。 【参考方案1】:

使用Array#filter

filter() 方法创建一个新数组,其中包含所有通过所提供函数实现的测试的元素。

var object = 
  "main": [
    "id": "123",
    "name": "name 1"
  , 
    "id": "234",
    "name": "name 2"
  ]
;
var toFind = "234";
var filtered = object.main.filter(function(el) 
  return el.id === toFind;
);
console.log(filtered);

如果array 中只有一个对象,则可能首选for-loopbreak

var object = 
  "main": [
    "id": "123",
    "name": "name 1"
  , 
    "id": "234",
    "name": "name 2"
  ]
;
var toFind = "234";
for (var i = 0, len = object.main.length; i < len; i++) 
  if (object.main[i].id === toFind) 
    break;
  

console.log(object.main[i].name);

【讨论】:

为什么要使用过滤器?它将遍历所有数组 @pwolaq – OP 可能有多个具有相似 ID 的对象... OP 说他想得到一个名字,而不是有名字的对象数组 @pwolaq - 不确定谁是正确的,我也添加了另一种方法......我希望它也能涵盖你的观点......【参考方案2】:

在 ES5 环境中,您可以使用 Array#some,如果您只期望一个结果。

var data =  "main": [ "id": "123", "name": "name 1" ,  "id": "234", "name": "name 2" ] ,
    result;

data.main.some(function (a) 
    if (a.id === '234') 
        result = a;
        return true;
    
);

console.log(result);

当您期望多个结果集时,您最好使用Array#filter

var data =  "main": [ "id": "123", "name": "name 1" ,  "id": "234", "name": "name 2a" ,  "id": "234", "name": "name 2" ] ,
    result = data.main.filter(function (a) 
        return a.id === '234';
    );

console.log(result);

在 ES6 环境中,您可以使用Array#find 作为第一个找到的元素,但如果要查找更多,则使用Array#filter

var data =  "main": [ "id": "123", "name": "name 1" ,  "id": "234", "name": "name 2" ] ,
    result = data.main.find(a => a.id === '234');

console.log(result);

【讨论】:

【参考方案3】:

如果 id 是唯一的,您可以使用 find()

var data = "main":[
  "id":"123","name":"name 1",
  "id":"234","name":"name 2"
  ]


var name = data.main.find(function(o) 
  return o.id == '234';
).name;

console.log(name)

【讨论】:

find 是 ES6 的一部分 更不用说如果没有给定id的元素会导致错误【参考方案4】:

您可以使用Array.prototype.filter 查找所有匹配的元素并将它们作为新数组返回。

要查找第一个匹配项,您可以使用 Array.prototype.find (ES2015+)。

【讨论】:

以上是关于如何取得数据库中name字段中“aaabbbcccdddeee”中的"ccc"子串的主要内容,如果未能解决你的问题,请参考以下文章

怎样取得dataTable中某一单元格的值

利用entity framework修改SQL数据库中数据

delphi 取得数据集某字段值的六种方法

SQL语法怎么取得一个字段的最大值

取得指定表的字段定义

在ms sql中如何拆分字符串:如一列值为 aaabbbccc 如何拆成 aaa , bbb, ccc三列?