CN110362593A - 一种数据查询方法、装置、设备及存储介质 - Google Patents
一种数据查询方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN110362593A CN110362593A CN201910623936.2A CN201910623936A CN110362593A CN 110362593 A CN110362593 A CN 110362593A CN 201910623936 A CN201910623936 A CN 201910623936A CN 110362593 A CN110362593 A CN 110362593A
- Authority
- CN
- China
- Prior art keywords
- string
- sentence
- character
- query
- character string
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2452—Query translation
- G06F16/24528—Standardisation; Simplification
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据查询方法、装置、设备及存储介质。该方法包括:获取数据查询语句,所述数据查询语句包括查询部分和条件部分,所述条件部分包括待查询的目标字符串,所述目标字符串中包括至少一个通配符;所述通配符在所述目标字符串中的位置满足预设条件,则将所述数据查询语句转换为预设格式的查询语句;根据所述预设格式的查询语句在数据库中查询所述目标字符串。通过上述技术方案,根据通配符所在的位置对含有通配符的查询语句进行转换,按照转换后的语句查询数据,提高了数据查询效率。
Description
技术领域
本发明实施例涉及数据处理技术领域,尤其涉及一种数据查询方法、装置、设备及存储介质。
背景技术
结构化查询语言(Structured Query Language,SQL)的数据查询语句,如WHERE子句,用于对数据库表的列数据进行目标字符串的查询或匹配操作。例如:SELECT C FROM TWHERE C LIKE‘abc%’,其含义是从数据表T中查询满足‘abc%’的形式的列C,其中,WHERE语句为查询部分,LIKE语句为条件部分,待查询的目标字符串既可以是一个明确的字符串常量,也可以是一个包含通配符“%”或“_”等的字符串,“%”代表任意字符串(也可为空),“_”代表任意单个字符。
现有方法在查询目标字符串时,通常直接将目标字符串与数据表中的字符串一一匹配,或者是利用通配符分段后,对每一段字符串一一匹配,数据查询效率低。
发明内容
本发明提供了一种数据查询方法、装置、设备及存储介质,以提高数据查询效率。
第一方面,本发明实施例提供了一种数据查询方法,包括:
获取数据查询语句,所述数据查询语句包括查询部分和条件部分,所述条件部分包括待查询的目标字符串,所述目标字符串中包括至少一个通配符;
所述通配符在所述目标字符串中的位置满足预设条件,则将所述数据查询语句转换为预设格式的查询语句;
根据所述预设格式的查询语句在数据库中查询所述目标字符串。
进一步的,所述预设条件包括:
所述通配符在所述目标字符串中的位置为非首位。
进一步的,将所述数据查询语句转换为预设格式的查询语句,包括:
确定所述目标字符串中出现的第一个通配符,所述目标字符串中位于所述第一个通配符之前的字符串为第一字符串;
根据第一字符串和ASCII码顺序确定第二字符串,其中,所述第二字符串的末位字符对应的ASCII码为所述第一字符串的末位字符对应的ASCII码的后一个;
根据所述第一字符串和所述第二字符串生成预设格式的查询语句。
进一步的,根据所述第一字符串和所述第二字符串生成预设格式的查询语句,包括:
若所述目标字符串满足预设形式,则生成包含所述第一字符串和所述第二字符串的第一条件语句,并替换所述数据查询语句的条件部分,得到预设格式的查询语句;
其中,所述预设形式为:所述目标字符串中的第一个通配符为“%”,且所述第一个通配符后不存在除“%”以外的其他字符。
进一步的,根据第一字符串和第二字符串生成预设格式的查询语句,包括:
若所述目标字符串不满足预设形式,则生成包含所述第一字符串和所述第二字符串的第二条件语句,并添加至所述数据查询语句的条件部分,得到预设格式的查询语句。
进一步的,所述数据查询语句的条件部分为结构化查询语言的LIKE语句,所述预设格式的查询语句包括结构化查询语言的BETWEEN语句。
第二方面,本发明实施例提供了一种数据查询装置,包括:
语句获取模块,用于获取数据查询语句,所述数据查询语句包括查询部分和条件部分,所述条件部分包括待查询的目标字符串,所述目标字符串中包括至少一个通配符;
语句转换模块,用于所述通配符在所述目标字符串中的位置满足预设条件,则将所述数据查询语句转换为预设格式的查询语句;
数据查询模块,用于根据所述预设格式的查询语句在数据库中查询所述目标字符串。
进一步的,所述语句转换模块,包括:
第一字符串确定单元,用于确定所述目标字符串中出现的第一个通配符,所述目标字符串中位于所述第一个通配符之前的字符串为第一字符串;
第二字符串确定单元,用于根据第一字符串和ASCII码顺序确定第二字符串,其中,所述第二字符串的末位字符对应的ASCII码为所述第一字符串的末位字符对应的ASCII码的后一个;
语句生成单元,用于根据所述第一字符串和所述第二字符串生成预设格式的查询语句。
第三方面,本发明实施例提供了一种设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的数据查询方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面所述的数据查询方法。
本发明实施例提供了一种数据查询方法、装置、设备及存储介质。方法包括:获取数据查询语句,所述数据查询语句包括查询部分和条件部分,所述条件部分包括待查询的目标字符串,所述目标字符串中包括至少一个通配符;所述通配符在所述目标字符串中的位置满足预设条件,则将所述数据查询语句转换为预设格式的查询语句;根据所述预设格式的查询语句在数据库中查询所述目标字符串。通过上述技术方案,根据通配符所在的位置对含有通配符的查询语句进行转换,按照转换后的语句查询数据,提高了数据查询效率。
附图说明
图1为本发明实施例一提供的一种数据查询方法的流程图;
图2为本发明实施例二提供的一种数据查询方法的流程图;
图3为本发明实施例三提供的一种数据查询装置的结构示意图;
图4为本发明实施例四提供的一种设备的硬件结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一提供的一种数据查询方法的流程图,本实施例可适用于通过SQL语句对含有通配符的目标字符串进行查询的情况。具体的,该数据查询方法可以由数据查询装置执行,该数据查询装置可以通过软件和/或硬件的方式实现,并集成在设备中。进一步的,设备包括但不限定于:计算机、工控机、***后台服务器以及云端服务器等具有数据查询功能的电子设备。
需要说明的是,本实施例的数据查询方法,首先对用户输入的SQL语句进行语法和语义解析,对于满足预设形式的SQL语句进行等价语义的转换和优化,从而缩小数据的查询或搜索范围,按照转换后的语句在相应的数据表中查询目标字符串。如图1所示,该方法具体包括如下步骤:
S110、获取数据查询语句,所述数据查询语句包括查询部分和条件部分,所述条件部分包括待查询的目标字符串,所述目标字符串中包括至少一个通配符。
具体的,获取用户输入的数据查询语句,该数据查询语句是SQL中用来对数据表的列数据与目标字符串进行匹配操作的,目标字符串既可以为明确的字符串常量,也可以包含通配符“%”或“_”。例如,数据查询语句可以为LIKE谓词表达式用在WHERE子句中构成的数据查询语句:
SELECT C FROM T WHERE C LIKE‘abc%’
上述语句的查询部分为:SELECT C FROM T,条件部分为:WHERE C LIKE‘abc%’,其含义是,在数据表T中查询列C,列C的数据满足“abc%”的形式,比如“abc5uc”、“abcefz5c8”都满足所述“abc%”的形式。
S120、所述通配符在所述目标字符串中的位置满足预设条件,则将所述数据查询语句转换为预设格式的查询语句。
具体的,所述通配符在目标字符串的位置可以为中间部分,也可以为末尾,满足目标字符串中第一个出现的通配符前面还存在真实字符即可。前面的真实字符可以大致提供数据查询的范围,基于这一原理,利用前面的真实字符将数据查询语句转换为预设格式。
在转换过程中,根据第一个出现的通配符前面的真实字符缩小数据查询范围。首先定位目标字符串中第一个出现的通配符,例如,“abc%”中,第一个出现的通配符是“%”,前面的真实字符为“abc”,记为第一字符串。数据库中的数据是按照一定的顺序排列,针对排列顺序可为数据列创建索引项或统计信息,便于数据查询时可根据索引项或统计信息快速定位目标数据。以数据按照字符ASCII码由小到大的顺序排列为例,数据查询时只需将数据库中的数据与目标字符串中的第一字符串“abc”比较大小,在数据库中查询到所有大于或等于“abc”的数据,即根据索引项或统计信息查询到排列在“abc”之后的数据,并且要小于“abd”。
本实施例实例性地设定数据库中的数据是按照ASCII码表由小到大的顺序排列的,则比较大小的规则是顺位比较每个对应字符的ASCII码,例如:“a56”小于“b56”、“a56”小于“a9cd6”、“a56”小于“a571n”等。需要说明的是,空字符小于任何其他字符,例如:“a56”小于“a56dg”。结合上述实例,查询“abc%”,由于d排在c的下一个,因此,满足“abc%”的数据一定分布在“abc”至“abd”之间,则原数据查询语句的条件部分等价于:大于或等于“abc”,并且小于“abd”,于是原数据查询语句的条件部分就可以转换为BETWEEN语句,得到预设格式的查询语句如下:
SELECT C FROM T WHERE C BETWEEN‘abc’AND‘abd’
S130、根据所述预设格式的查询语句在数据库中查询所述目标字符串。
具体的,根据转换后的预设格式的查询语句进行查询即可。本实施例查询目标字符串是基于字符串间比较大小关系的原理,能够利用C列上的索引和统计信息来缩小查询范围,从而提高查询的效率。
进一步的,所述通配符在所述目标字符串中的位置为非首位。
具体的,通配符在目标字符串中的位置不能是首位,例如,可以是“abc%”、“abc%de_”、“abc_”等。如果通配符在所述目标字符串中的位置为首位,则从第一个字符开始就不受任何条件的限定,因此需要查询数据表中的所有数据,无法缩小查询范围。
本发明实施例一提供的一种数据查询方法,包括:获取数据查询语句,所述数据查询语句包括查询部分和条件部分,所述条件部分包括待查询的目标字符串,所述目标字符串中包括至少一个通配符;所述通配符在所述目标字符串中的位置满足预设条件,则将所述数据查询语句转换为预设格式的查询语句;根据所述预设格式的查询语句在数据库中查询所述目标字符串。通过上述技术方案,根据通配符所在的位置对含有通配符的查询语句进行转换,按照转换后的语句查询数据,从而能够合理地利用索引和统计信息,提高了数据查询效率。
实施例二
图2为本发明实施例二提供的一种数据查询方法的流程图,本实施例是在上述实施例的基础上进行优化,对数据查询语句转换为预设格式的过程进行具体描述。需要说明的是,未在本实施例中详尽描述的技术细节可参见上述任意实施例。
具体的,如图2所示,该方法具体包括如下步骤:
S210、获取数据查询语句,所述数据查询语句包括查询部分和条件部分,所述条件部分包括待查询的目标字符串,所述目标字符串中包括至少一个通配符。
S220、所述通配符在所述目标字符串中的位置是否为首位,若否则执行S230,若是则执行S290。
S230、确定所述目标字符串中出现的第一个通配符,所述目标字符串中位于所述第一个通配符之前的字符串为第一字符串。
具体的,定位到目标字符串中第一个出现的通配符,并将其前面的真实字符记为第一字符串。例如,“abc%”中第一个出现的通配符为“%”,则第一字符串为“abc”。
S240、根据第一字符串和ASCII码顺序确定第二字符串,其中,所述第二字符串的末位字符对应的ASCII码为所述第一字符串的末位字符对应的ASCII码的后一个。
具体的,将第一字符串中的最后一个字符用ASCII码表中的下一个字符替换,替换后的字符串记为第二字符串。例如根据“abc”确定的第二字符串为“abd”。
进一步的,根据所述第一字符串和所述第二字符串生成预设格式的查询语句,包括步骤S250-S280。
S250、所述目标字符串是否满足预设形式,若是则执行S260,若否则执行S270。
具体的,所述预设形式为:所述目标字符串中的第一个通配符为“%”,且所述第一个通配符后不存在除“%”以外的其他字符。
S260、生成包含所述第一字符串和所述第二字符串的第一条件语句,并替换所述数据查询语句的条件部分,得到预设格式的查询语句。
具体的,如果第一个通配符为“%”,且所述第一个通配符后不存在除“%”以外的其他字符,则根据第一字符串确定的数据查询范围就是最终范围,不会受到第一个通配符后的字符的影响,因此,直接将第一条件语句替换条件部分即可。例如,对于如下SQL语句:
SELECT C FROM T WHERE C LIKE‘abc%’
其目标字符串满足预设条件,则第一条件语句为BETWEEN‘abc’AND‘abd’,用于将数据查询范围限定至abc与abd之间,替换原数据查询语句的条件部分即可得到:
SELECT C FROM T WHERE C BETWEEN‘abc’AND‘abd’
S270、生成包含所述第一字符串和所述第二字符串的第二条件语句,并添加至所述数据查询语句的条件部分,得到预设格式的查询语句。
具体的,如果第一个通配符为“_”,或者第一个通配符后还存在其他的真正字符或通配符“_”,则根据第一字符串确定的数据查询范围不是最终范围,还会受到第一个通配符后的真正字符及通配符“_”的限定,因此,除了利用第一字符串和第二字符串缩小查询范围,仍然要以目标字符串作为条件部分。例如,对于如下SQL语句:
SELECT C FROM T WHERE C LIKE‘abc_def%’
其第一个通配符为“_”,(且第一个通配符之后还存在真正字符),则第二条件语句为BETWEEN‘abc’AND‘abd’,用于将数据查询范围限定至abc与abd之间,还需要以目标字符串作为条件,因此,将基于第一字符串和第二字符串生成的第二条件语句(BETWEEN‘abc’AND‘abd’)添加至原数据查询语句的条件部分,得到预设格式的查询语句为:
SELECT C FROM T WHERE C BETWEEN‘abc’AND‘abd’AND C LIKE‘abc_def%’
在目标字符串不满足预设形式的情况下,LIKE条件不能直接通过等价转换为BETWEEN…AND…的形式,但是仍然可以得到一定的字符串大小的比较关系。本实施例中,满足LIKE‘abc_def%’条件的字符串一定也同时满足BETWEEN‘abc’AND‘abd’,因此可以根据第一字符串来构造一个比较关系从而缩小查找范围。在数据查询的过程中,根据BETWEEN‘abc’AND‘abd’条件可使用C列上的索引和统计信息先过滤掉一部分数据,对剩下的数据再根据LIKE谓词表达式进行处理,从而提高了数据查询的效率。
需要说明的是,当目标字符串中有多个通配符时,只要第一个通配符的位置不是首位,都可基于第一个通配符前的第一字符串转换为BETWEEN的子句,用于缩小数据查询范围;如果目标字符串不满足预设形式,则将目标字符串也作为条件部分。
S280、根据所述预设格式的查询语句在数据库中查询所述目标字符串。
S290、直接根据所述数据查询语句在数据库中查询所述目标字符串。
具体的,所述通配符在所述目标字符串中的位置为首位,则无法根据第一字符串缩小查询范围,此时不进行等价语义转换,直接根据所述数据查询语句在数据库中查询所述目标字符串。
进一步的,所述数据查询语句的条件部分为结构化查询语言的LIKE语句,所述预设格式的查询语句包括结构化查询语言的BETWEEN语句。
需要说明的是,数据查询语句也可以为其他类型的SQL语句,只要是用于查询包含通配符的目标字符串,都可采用本实施例的转换方法生成预设格式的查询语句;预设格式的查询语句也不限于BETWEEN语句,只要是依据字符串的大小关系,基于目标字符串中的真实字符能够限一定的数据查询范围即可。
本发明实施例二提供的一种数据查询方法,在上述实施例的基础上进行优化,通过确定第一字符串并根据数据的大小顺序确定第二字符串,利用第一字符串和第二字符串缩小查询范围,充分利用数据库的索引信息,提高数据查询效率。
实施例三
图3为本发明实施例三提供的一种数据查询装置的结构示意图。本实施例提供的数据查询装置包括:
语句获取模块310,用于获取数据查询语句,所述数据查询语句包括查询部分和条件部分,所述条件部分包括待查询的目标字符串,所述目标字符串中包括至少一个通配符;
语句转换模块320,用于所述通配符在所述目标字符串中的位置满足预设条件,则将所述数据查询语句转换为预设格式的查询语句;
数据查询模块330,用于根据所述预设格式的查询语句在数据库中查询所述目标字符串。
本发明实施例三提供的一种数据查询装置,通过语句获取模块获取数据查询语句;通过语句转换模块在所述通配符在所述目标字符串中的位置满足预设条件的情况下,将所述数据查询语句转换为预设格式的查询语句;通过数据查询模块根据所述预设格式的查询语句在数据库中查询所述目标字符串,根据通配符所在的位置对含有通配符的查询语句进行转换,按照转换后的语句查询数据,提高了数据查询效率。
在上述实施例的基础上,所述预设条件包括:所述通配符在所述目标字符串中的位置为非首位。
进一步的,所述语句转换模块320,包括:
第一字符串确定单元,用于确定所述目标字符串中出现的第一个通配符,所述目标字符串中位于所述第一个通配符之前的字符串为第一字符串;
第二字符串确定单元,用于根据第一字符串和ASCII码顺序确定第二字符串,其中,所述第二字符串的末位字符对应的ASCII码为所述第一字符串的末位字符对应的ASCII码的后一个;
语句生成单元,用于根据所述第一字符串和所述第二字符串生成预设格式的查询语句。
在上述实施例的基础上,所述语句生成单元,具体用于:
若所述目标字符串满足预设形式,则生成包含所述第一字符串和所述第二字符串的第一条件语句,并替换所述数据查询语句的条件部分,得到预设格式的查询语句;
其中,所述预设形式为:所述目标字符串中的第一个通配符为“%”,且所述第一个通配符后不存在除“%”以外的其他字符。
进一步的,所述语句生成单元,具体用于:
若所述目标字符串不满足预设形式,则生成包含所述第一字符串和所述第二字符串的第二条件语句,并添加至所述数据查询语句的条件部分,得到预设格式的查询语句。
进一步的,所述数据查询语句的条件部分为结构化查询语言的LIKE语句,所述预设格式的查询语句包括结构化查询语言的BETWEEN语句。
本发明实施例三提供的数据查询装置可以用于执行上述任意实施例提供的数据查询方法,具备相应的功能和有益效果。
实施例四
图4为本发明实施例四提供的一种设备的硬件结构示意图。如图4所示,本实施例提供的一种设备,包括:处理器410和存储装置420。该设备中的处理器可以是一个或多个,图4中以一个处理器410为例,所述设备中的处理器410和存储装置420可以通过总线或其他方式连接,图4中以通过总线连接为例。
所述一个或多个程序被所述一个或多个处理器410执行,使得所述一个或多个处理器实现上述实施例中任意所述的数据查询方法。
该设备中的存储装置420作为一种计算机可读存储介质,可用于存储一个或多个程序,所述程序可以是软件程序、计算机可执行程序以及模块,如本发明实施例中数据查询方法对应的程序指令/模块(例如,附图3所示的数据查询装置中的模块,包括:语句获取模块310、语句转换320以及数据查询模块330)。处理器410通过运行存储在存储装置420中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述方法实施例中的数据查询方法。
存储装置420主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序;存储数据区可存储根据设备的使用所创建的数据等(如上述实施例中的数据查询语句、预设格式的查询语句等)。此外,存储装置420可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储装置420可进一步包括相对于处理器410远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
并且,当上述设备中所包括一个或者多个程序被所述一个或者多个处理器410执行时,进行如下操作:获取数据查询语句,所述数据查询语句包括查询部分和条件部分,所述条件部分包括待查询的目标字符串,所述目标字符串中包括至少一个通配符;所述通配符在所述目标字符串中的位置满足预设条件,则将所述数据查询语句转换为预设格式的查询语句;根据所述预设格式的查询语句在数据库中查询所述目标字符串。
本实施例提出的设备与上述实施例提出的数据查询方法属于同一发明构思,未在本实施例中详尽描述的技术细节可参见上述任意实施例,并且本实施例具备与执行数据查询方法相同的有益效果。
在上述实施例的基础上,本实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被数据查询装置执行时实现本发明上述任意实施例中的数据查询方法,该方法包括:获取数据查询语句,所述数据查询语句包括查询部分和条件部分,所述条件部分包括待查询的目标字符串,所述目标字符串中包括至少一个通配符;所述通配符在所述目标字符串中的位置满足预设条件,则将所述数据查询语句转换为预设格式的查询语句;根据所述预设格式的查询语句在数据库中查询所述目标字符串。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的数据查询方法操作,还可以执行本发明任意实施例所提供的数据查询方法中的相关操作,且具备相应的功能和有益效果。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,设备,或者网络设备等)执行本发明各个实施例所述的数据查询方法。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种数据查询方法,其特征在于,包括:
获取数据查询语句,所述数据查询语句包括查询部分和条件部分,所述条件部分包括待查询的目标字符串,所述目标字符串中包括至少一个通配符;
所述通配符在所述目标字符串中的位置满足预设条件,则将所述数据查询语句转换为预设格式的查询语句;
根据所述预设格式的查询语句在数据库中查询所述目标字符串。
2.根据权利要求1所述的方法,其特征在于,所述预设条件包括:
所述通配符在所述目标字符串中的位置为非首位。
3.根据权利要求1所述的方法,其特征在于,将所述数据查询语句转换为预设格式的查询语句,包括:
确定所述目标字符串中出现的第一个通配符,所述目标字符串中位于所述第一个通配符之前的字符串为第一字符串;
根据第一字符串和ASCII码顺序确定第二字符串,其中,所述第二字符串的末位字符对应的ASCII码为所述第一字符串的末位字符对应的ASCII码的后一个;
根据所述第一字符串和所述第二字符串生成预设格式的查询语句。
4.根据权利要求3所述的方法,其特征在于,根据所述第一字符串和所述第二字符串生成预设格式的查询语句,包括:
若所述目标字符串满足预设形式,则生成包含所述第一字符串和所述第二字符串的第一条件语句,并替换所述数据查询语句的条件部分,得到预设格式的查询语句;
其中,所述预设形式为:所述目标字符串中的第一个通配符为“%”,且所述第一个通配符后不存在除“%”以外的其他字符。
5.根据权利要求3所述的方法,其特征在于,根据第一字符串和第二字符串生成预设格式的查询语句,包括:
若所述目标字符串不满足预设形式,则生成包含所述第一字符串和所述第二字符串的第二条件语句,并添加至所述数据查询语句的条件部分,得到预设格式的查询语句。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述数据查询语句的条件部分为结构化查询语言的LIKE语句,所述预设格式的查询语句包括结构化查询语言的BETWEEN语句。
7.一种数据查询装置,其特征在于,包括:
语句获取模块,用于获取数据查询语句,所述数据查询语句包括查询部分和条件部分,所述条件部分包括待查询的目标字符串,所述目标字符串中包括至少一个通配符;
语句转换模块,用于所述通配符在所述目标字符串中的位置满足预设条件,则将所述数据查询语句转换为预设格式的查询语句;
数据查询模块,用于根据所述预设格式的查询语句在数据库中查询所述目标字符串。
8.根据权利要求7所述的方法,其特征在于,所述语句转换模块,包括:
第一字符串确定单元,用于确定所述目标字符串中出现的第一个通配符,所述目标字符串中位于所述第一个通配符之前的字符串为第一字符串;
第二字符串确定单元,用于根据第一字符串和ASCII码顺序确定第二字符串,其中,所述第二字符串的末位字符对应的ASCII码为所述第一字符串的末位字符对应的ASCII码的后一个;
语句生成单元,用于根据所述第一字符串和所述第二字符串生成预设格式的查询语句。
9.一种设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6中任一所述的数据查询方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6中任一所述的数据查询方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910623936.2A CN110362593B (zh) | 2019-07-11 | 2019-07-11 | 一种数据查询方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910623936.2A CN110362593B (zh) | 2019-07-11 | 2019-07-11 | 一种数据查询方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110362593A true CN110362593A (zh) | 2019-10-22 |
CN110362593B CN110362593B (zh) | 2021-12-31 |
Family
ID=68218847
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910623936.2A Active CN110362593B (zh) | 2019-07-11 | 2019-07-11 | 一种数据查询方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110362593B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112286958A (zh) * | 2020-11-16 | 2021-01-29 | 广州速威智能***科技有限公司 | 数据库查询表达式的处理方法和*** |
CN112699143A (zh) * | 2019-10-23 | 2021-04-23 | 拉扎斯网络科技(上海)有限公司 | 查询方法、装置、电子设备及存储介质 |
CN113051610A (zh) * | 2021-03-12 | 2021-06-29 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置和用于数据处理的装置 |
CN113076440A (zh) * | 2021-04-01 | 2021-07-06 | 广东南方数码科技股份有限公司 | 地图瓦片图像处理方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102142009A (zh) * | 2010-12-09 | 2011-08-03 | 华为技术有限公司 | 一种正则表达式匹配的方法及装置 |
US20150312214A1 (en) * | 2013-05-03 | 2015-10-29 | Fortinet, Inc. | Securing email communications |
US20150331695A1 (en) * | 2014-05-15 | 2015-11-19 | Thomson Licensing | Method and apparatus for managing configuration entries in a configuration system |
CN109656951A (zh) * | 2018-12-18 | 2019-04-19 | 北京华电天仁电力控制技术有限公司 | 基于表达式查询数据的方法及查询*** |
-
2019
- 2019-07-11 CN CN201910623936.2A patent/CN110362593B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102142009A (zh) * | 2010-12-09 | 2011-08-03 | 华为技术有限公司 | 一种正则表达式匹配的方法及装置 |
US20150312214A1 (en) * | 2013-05-03 | 2015-10-29 | Fortinet, Inc. | Securing email communications |
US20150331695A1 (en) * | 2014-05-15 | 2015-11-19 | Thomson Licensing | Method and apparatus for managing configuration entries in a configuration system |
CN109656951A (zh) * | 2018-12-18 | 2019-04-19 | 北京华电天仁电力控制技术有限公司 | 基于表达式查询数据的方法及查询*** |
Non-Patent Citations (1)
Title |
---|
万民等: "使用ASCII字符串匹配技术检测防御SQL注入攻击", 《南京广播电视大学学报》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112699143A (zh) * | 2019-10-23 | 2021-04-23 | 拉扎斯网络科技(上海)有限公司 | 查询方法、装置、电子设备及存储介质 |
CN112699143B (zh) * | 2019-10-23 | 2022-09-13 | 拉扎斯网络科技(上海)有限公司 | 查询方法、装置、电子设备及存储介质 |
CN112286958A (zh) * | 2020-11-16 | 2021-01-29 | 广州速威智能***科技有限公司 | 数据库查询表达式的处理方法和*** |
CN112286958B (zh) * | 2020-11-16 | 2024-05-17 | 广州速威智能***科技有限公司 | 数据库查询表达式的处理方法和*** |
CN113051610A (zh) * | 2021-03-12 | 2021-06-29 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置和用于数据处理的装置 |
CN113076440A (zh) * | 2021-04-01 | 2021-07-06 | 广东南方数码科技股份有限公司 | 地图瓦片图像处理方法、装置、设备及存储介质 |
CN113076440B (zh) * | 2021-04-01 | 2024-07-09 | 广东南方数码科技股份有限公司 | 地图瓦片图像处理方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110362593B (zh) | 2021-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110362593A (zh) | 一种数据查询方法、装置、设备及存储介质 | |
CN109783555B (zh) | 表单模板存储方法、装置、存储介质及电子设备 | |
CN108369591B (zh) | 用于缓存和参数化ir的***和方法 | |
CN111177182B (zh) | 数据查询方法和装置、存储介质和电子设备 | |
CN107145549B (zh) | 一种数据库缓存控制方法以及*** | |
CN111562885A (zh) | 数据处理方法、装置、计算机设备及存储介质 | |
CN108153803B (zh) | 一种数据获取方法、装置及电子设备 | |
CN112818181B (zh) | 图数据库检索方法、***、计算机设备和存储介质 | |
CN108536728A (zh) | 一种数据查询方法和装置 | |
CN111309751A (zh) | 大数据处理方法及装置 | |
CN114676686B (zh) | 数据字典处理方法、翻译方法及相关装置 | |
CN114297361A (zh) | 一种基于场景化对话理解的人机交互方法及相关组件 | |
CN109597825B (zh) | 规则引擎调用方法、装置、设备及计算机可读存储介质 | |
CN110888672A (zh) | 一种基于元数据架构的表达式引擎实现方法及*** | |
CN103812774A (zh) | 基于tcam的策略配置方法、报文处理方法及相应装置 | |
CN112434037A (zh) | 数据处理方法、处理装置、数据处理设备和存储介质 | |
CN109814916B (zh) | 一种ivr流程的配置方法、装置、存储介质和服务器 | |
TWI643077B (zh) | 適應性調整資料庫結構之方法與調整裝置 | |
CN116340337A (zh) | 一种数据库无关的生成sql语句方法 | |
WO2015003596A1 (en) | Systems and methods for configuring matching rules related to voice input commands | |
CN106682221B (zh) | 问答交互的响应方法、装置及问答*** | |
CN111737425B (zh) | 一种应答方法、装置、服务器及存储介质 | |
US20220207097A1 (en) | Multi-node word segmentation system and method for keyword search | |
CN114281842A (zh) | 一种数据库分表查询的方法及设备 | |
CN109710643B (zh) | 外连接管理方法、装置、服务器及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |