重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

mysql怎么查询模糊 mysql进行模糊查询

如何用MYSQL模糊查询···

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

mysql模糊查询(急用,谢谢!)

SELECT * FROM oneself WHERE name like '%'

like 是模糊查询的关键字。

% 是通配符,代表多个任意匹配,比如 '%人民' 就是搜索前半段是任意字符,结尾是人民的记录,类似的可以将 % 放在条件字段的任意位置。

_ 是单个字符的统配符,可以匹配单个任意字符。

PHP 不需要像你这样写,双引号中出现的变量将自动被解析。

$sql = "SELECT * FROM oneself WHERE name like '%{$colname_Recordset1}' LIMIT {$startRow_Recordset1}, {$maxRows_Recordset1}";

$Recordset1 = mysql_query($sql) or die(mysql_error());

{} 放在变量两边是直接指明这是个变量及该变量的名字,如果遇到数组类型的变量效果比较明显,不然可能会造成数组型变量名解析出错。

关于MYSQL的模糊 查询

1、select * from stu where no =‘$no’ and name='$name' and sex='$sex' and class like '%$class%';

正确,确定传过来的值正确就可以

2、按id值输出,查询得的两个表id不同,既然两个表不是按id关联的,你想按哪个id显示,就用哪个就可以了,不清楚,可以输出一下数组,看看需要哪些数据

mysql 模糊查询

1、如果你什么也没有输入的话,sql语句就如下:

select * from tablename where name like '%%';

这样的话就是 name 等于任何字符都会被查出,当然所有内容都会出来了。

2、这不是问题,从查询的设计角度看,什么都不输入自然是要匹配所有数据,相反输入了东西就是匹配它了。

*****************

补充:

*****************

如果你想什么都不输入的时候什么也不返回的话方法如下:

在后台写两个sql,类似如下

if ($name == ""){

$exec="select * from tablename where 1=2";

}else{

$exec="select * from tablename where name like '%$name%'";

}

---

以上,希望对你有所帮助。

mysql模糊查询

mysql 中一般使用like 来进行模糊查询,但like 的效率非常的低,容易导致全表扫描,因此不推荐使用。

那有木有其他的方法代替like来进行模糊查询呢?

替代方法肯定是有的,以下是几个可替代like 进行模糊查询的 关键词

instr

locate

position

find_in_set

下面简单介绍下各个方法的使用情况

测试对象content 表

SELECT COUNT(mlzm_content.id) FROM mlzm_content

数据量: 33034 条信息

LIKE

SELECT id,Title from mlzm_content WHERE Title LIKE '%美女%'

结果:294 条记录

耗时: 0.0130 秒

SELECT id,Title from mlzm_content WHERE Title LIKE '%模特%'

结果:10 条记录

耗时: 0.0550 秒

结论:但查询到结果集的数据量少的时候like耗时会增加,即总数据量不变,结果越少耗时约大

INSTR

语法:INSTR(str, substr)

SELECT id,title from mlzm_content WHERE INSTR(Title,'美女')0;

结果:294 条

耗时:0.0150 秒

INSTR(str, substr) 与LOCATE(substr, str) 类似,只是参数的位置变了

LOCATE

语法:LOCATE(substr, str)

SELECT id,title from mlzm_content WHERE LOCATE('美女',Title)0;

结果:294 条

耗时: 0.0150 秒

SELECT id,title from mlzm_content WHERE LOCATE('模特',Title)0

结果:10条

耗时: 0.0760 秒


网页标题:mysql怎么查询模糊 mysql进行模糊查询
网页链接:http://cqcxhl.com/article/hgosgd.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP