我有这个表单,我用它来搜索数据库中的特定记录。
这是查询:
$sql = "select * from `hostess` where first_name_en like '%$term' or family_name_en like '%$term%' order by `family_name_en` asc";
问题在于,如果我搜索 ele ,那么包含 ele 的所有名称,例如 elena 等,但是如果我写 elena 什么都没有出现。
为什么?
答案 0 :(得分:1)
你在第一个LIKE中错过了一个%。 目前你的意思是搜索以ele结尾的任何名字。
LIKE '%ele'
- 将匹配以ele结尾的任何内容LIKE 'ele%'
- 将匹配以ele LIKE '%ele%'
- 将匹配其中的任何内容答案 1 :(得分:0)
$sql = "select * from `hostess` where first_name_en like '%$term%' or family_name_en like '%$term%' order by `family_name_en` asc";
<强>%$术语%强>
使用此
答案 2 :(得分:0)
您是否有理由不在%
值的末尾使用first_name_en
?
$sql = "select * from `hostess` where first_name_en like '%$term%' or family_name_en like '%$term%' order by `family_name_en` asc";
编辑:对于大写 - 小写问题:
$term = strtolower($term);
$sql = "select * from `hostess` where lower(first_name_en) like '%$term%' or lower(family_name_en) like '%$term%' order by `family_name_en` asc";