目前有个项目,搜索的功能。
在一个table里。
姓名 学号 手机号 项目A 项目B
除了姓名以外,其他都是精确查询。
姓名 :模糊查询
学号 手机号 项目A 项目A :精确查询
只输入一个关键字,其他不输入也能查询。
请问这个sql 怎么写啊?
目前有个项目,搜索的功能。
在一个table里。
姓名 学号 手机号 项目A 项目B
除了姓名以外,其他都是精确查询。
姓名 :模糊查询
学号 手机号 项目A 项目A :精确查询
只输入一个关键字,其他不输入也能查询。
请问这个sql 怎么写啊?
查询条件可以这么写
if(trim($where['name'])){
$where['name']=['like',"%".trim($where['name'])."%"];
}else{
unset($where['name']);
}
if(trim($where['number'])){
$where['number']=['like',"%".trim($where['number'])."%"];
}else{
unset($where['number']);
}
if(trim($where['tel'])){
$where['status']=trim($where['status']);
}else{
unset($where['status']);
}
$search = trim($where['name']);
if($search){
if(is_numberic($search)){
$where['_string'] = ' (tel="%.$search.%") OR ( titleA = "%.$search.%") OR ( titleB ="%.$search.%") OR ( number="%.$search.%")';
}else{
$where['name']=['like',"%".$search."%"];
}
}
5 回答3.2k 阅读✓ 已解决
3 回答3.6k 阅读✓ 已解决
1 回答4k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
2 回答2.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
5 回答1.4k 阅读
简单的来说 可以拼接字符
比如 isset(电话了) 那就在 sql里面加上 and tel = XXXX
如果有 isset(项目名)了 就在后面 加上 and project_name = XXXX
if(isset(电话了)){
sql.=" and tel =XXX"
}
if(isset(project_name)){
sql.= " and project_name = XXXX"
}