
我们在查询某个字段的时候,有时候只想匹配某段数据,比如想查询这篇文章的所有关键词是否存在某个关键词,我们往往需要匹配,我们下面来讲解一下如何匹配查询某个关键词值
SQL模糊查询的语法为
“SELECT column FROM table WHERE column LIKE ';pattern';”。
SQL提供了四种匹配模式:
1. % 表示任意0个或多个字符。如下语句:
SELECT * FROM user WHERE name LIKE ';%三%';
将会把name为“张三”,“三脚猫”,“唐三藏”等等有“三”的全找出来;
2. _ 表示任意单个字符。语句:
SELECT * FROM user WHERE name LIKE ';_三_';
只找出“唐三藏”这样name为三个字且中间一个字是“三”的;
SELECT * FROM user WHERE name LIKE ';三__';
只找出“三脚猫”这样name为三个字且第一个字是“三”的;
3. [ ] 表示括号内所列字符中的一个(类似与正则表达式)。语句:
SELECT * FROM user WHERE name LIKE ';[张李王]三';
将找出“张三”、“李三”、“王三”(而不是“张李王三”);
如 [ ] 内有一系列字符(01234、abcde之类的)则可略写为“0-4”、“a-e”
SELECT * FROM user WHERE name LIKE ';老[1-9]';
将找出“老1”、“老2”、……、“老9”;
如要找“-”字符请将其放在首位:';张三[-1-9]';
4. [^ ] 表示不在括号所列之内的单个字符。语句:
SELECT * FROM user WHERE name LIKE ';[^张李王]三';
将找出不姓“张”、“李”、“王”的“赵三”、“孙三”等;
SELECT * FROM user WHERE name LIKE ';老[^1-4]';
将排除“老1”到“老4”寻找“老5”、“老6”、……、“老9”。
!最后是重点!
由于通配符的缘故,导致我们查询特殊字符“%”、“_”、“[”、“';”的语句无法正常实现,而把特殊字符用“[ ]”括起便可正常查询。据此我们写出以下函数:
function sqlencode(str)
str=replace(str,"';","';';")
str=replace(str,"[","[[]") ';此句一定要在最先
str=replace(str,"_","[_]")
str=replace(str,"%","[%]")
sqlencode=str
end function
Atas ialah kandungan terperinci mysql正则匹配模糊查询某个字段. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!
Kaedah Cina input sublim
Bagaimana untuk menukar fail html kepada fail pdf
Pengenalan kepada protokol xmpp
Apakah kaedah membina tapak web mudah alih?
Alat muat turun dan pemasangan Linux biasa
Bagaimana untuk memulihkan fail yang dipadam sepenuhnya pada komputer
fon set notepad
penggunaan fungsi fungsi js