1

我有这个表格,我用它来搜索数据库中的特定记录。

这是查询:

$sql = "select * from `hostess` where first_name_en like '%$term' or family_name_en like '%$term%' order by `family_name_en` asc";

问题是,如果我搜索 ie ele,就会出现所有包含ele的名称,例如elena等,但是如果我写elena什么都不会出现。

怎么会

4

3 回答 3

1

您在第一个 LIKE 中遗漏了 %。目前你的说法搜索任何以ele结尾的名字。

  1. LIKE '%ele'- 匹配任何以 ele 结尾的东西
  2. LIKE 'ele%'- 将匹配以 ele 开头的任何内容
  3. LIKE '%ele%'- 将匹配任何带有 ele 的东西
于 2012-09-27T16:12:51.927 回答
0
$sql = "select * from `hostess` where first_name_en like '%$term%' or family_name_en like '%$term%' order by `family_name_en` asc";

%$期限%

用这个

于 2012-09-27T16:03:31.420 回答
0

您是否有理由不使用value%的末尾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"; 
于 2012-09-27T16:04:15.597 回答