Home > Database > Mysql Tutorial > mysql regular matching fuzzy method to query a certain field

mysql regular matching fuzzy method to query a certain field

coldplay.xixi
Release: 2020-06-30 10:31:18
forward
2642 people have browsed it

mysql regular matching fuzzy method to query a certain field

mysql regular matching fuzzy query for a certain field

When we query a certain field, sometimes we only If we want to match a certain piece of data, for example, if we want to query all keywords in this article to see if a certain keyword exists, we often need to match. Let’s explain how to match and query a certain keyword value

SQL fuzzy query The syntax is
"SELECT column FROM table WHERE column LIKE ';pattern';".

SQL provides four matching modes:
1. % represents any 0 or more characters. The following statement:
SELECT * FROM user WHERE name LIKE ';%三%';
will put the names of "Zhang San", "Three-legged Cat", "Tang Sanzang" and so on. Find it;

2. _ represents any single character. Statement:
SELECT * FROM user WHERE name LIKE ';_三_';
Only find "Tang Sanzang" whose name has three characters and the middle one is "三";
SELECT * FROM user WHERE name LIKE ';三__';
Only find "three-legged cat" whose name has three characters and the first character is "三";

3. [ ] means One of the characters listed in parentheses (similar to a regular expression). Statement:
SELECT * FROM user WHERE name LIKE ';[张李王]三';
will find "Zhang San", "Li San", "Wang San" (instead of "Zhang Li Wang San" ");

If [ ] contains a series of characters (01234, abcde, etc.), it can be abbreviated as "0-4", "a-e"
SELECT * FROM user WHERE name LIKE '; Old[1-9]';
will find "old1", "old2",...,"old9";
If you want to find the "-" character, please put it first:' ;张三[-1-9]';

4. [^ ] represents a single character not listed in brackets. Statement:
SELECT * FROM user WHERE name LIKE ';[^Zhang Liwang]三';
will find "Zhao San", "Sun" who are not surnamed "Zhang", "Li", "Wang" Three" and so on;
SELECT * FROM user WHERE name LIKE ';Old[^1-4]';
will exclude "Old1" to "Old4" and search for "Old5", "Old6", ..., "Old 9".

! The last thing is the point!
Due to wildcards, our query statement for special characters "%", "_", "[", "';" cannot be implemented normally. However, the special characters can be queried normally by enclosing them with "[ ]" . Based on this, we write the following function:

function sqlencode(str)
str=replace(str,"';","';';")
str=replace(str," [","[[]") ';This sentence must come first
str=replace(str,"_","[_]")
str=replace(str,"%", "[%]")
sqlencode=str
end function

Recommended tutorial: mysql video tutorial

The above is the detailed content of mysql regular matching fuzzy method to query a certain field. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:liqingbo.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template