没有输入内容,点一下查询,就出来了所有的内容?
而且只要输入name中的某个数据,所有的内容都出来了。
$exec="select * from tablename where name like '%$name%'";
我数据表中就有一项name。
如果什么都不输入,点“查询”也不会出现任何结果该怎么写?
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%'";
}
---
以上,希望对你有所帮助。
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%'";
}
---
以上,希望对你有所帮助。
温馨提示:答案为网友推荐,仅供参考
第1个回答 2009-09-17
我描述下
应该是 输入什么就出什么(这儿有2个方向,1.模糊查询2.精确查询)
然后不输入就查询全部的
根据你的描述是第一个应该
select * from tablename where name like ''%''+$name+''%''
你试下
大概就是这样的
如果什么都不输入,点“查询”也不会出现任何结果该怎么写?
那就不要用like 直接用=号
把where 后的改为 name = '$name'
因为数据多了like的效能不好
应该是 输入什么就出什么(这儿有2个方向,1.模糊查询2.精确查询)
然后不输入就查询全部的
根据你的描述是第一个应该
select * from tablename where name like ''%''+$name+''%''
你试下
大概就是这样的
如果什么都不输入,点“查询”也不会出现任何结果该怎么写?
那就不要用like 直接用=号
把where 后的改为 name = '$name'
因为数据多了like的效能不好
第2个回答 2009-09-17
给你个思路吧,如果什么都不输入,那么$name的值就是空值,你可以在前台加判断,如果是空值的话那返回就可以了
第3个回答 2019-03-21
查询姓名由5个字母构成的学生记录
SELECT *
FROM stu
WHERE sname LIKE '_____';
模糊查询必须使用LIKE关键字。其中 “_”匹配任意一个字母,5个“_”表示5个任意字母。
SELECT *
FROM stu
WHERE sname LIKE '_____';
模糊查询必须使用LIKE关键字。其中 “_”匹配任意一个字母,5个“_”表示5个任意字母。
第4个回答 2009-09-17
模糊查询不复杂,你的表达能力倒是个问题