【发布时间】:2014-11-07 10:13:25
【问题描述】:
PDO,我想使用搜索查询。我尝试使用类似查询,在搜索变量的前端和末尾都使用%。但它会在单词之间搜索。
如果在数据库中有名称 Jhon Anderson 并且如果我使用 LIKE %erson% 使用搜索变量,则查询将为我获取包含上述名称的行。
但我想要的是查询应该只搜索起始字母,所以我尝试使用Jhon% 进行 LIKE 查询,我得到了想要的结果,但最后使用这个% 只有在搜索变量与第一个单词的开头匹配时才有效,但是空格后面的那个词呢?
我的意思是,如果我尝试 Anderson% 或 Ander%,查询将不会得到这一行的结果,因为 Anderson 是 Jhon Anderson 字段中空格后的第二个单词。
所以我的问题是如何在空格后的单词中搜索,如果有起始字母匹配搜索查询。
我不知道这种查询是否存在,但我认为在使用带有通配符 '%'.$variable.'%' 的类似查询并在获得所有结果后取消设置搜索变量的数组或行之后,可能会进行一些循环与结果的第一个字母不匹配。
关于如何实现这种搜索的任何想法。
现在查询我正在使用,
$stmt = $conn->prepare("SELECT ROOM, GUEST_NAME, GUEST_FIRST_NAME, CONFIRMATION_NO, DEPARTURE, PWD FROM RESERVATION_GENERAL_2 WHERE LOWER(GUEST_FIRST_NAME) LIKE ? OR LOWER(GUEST_NAME) LIKE ?");
$stmt->execute(array('%'.strtolower($searchFilter).'%','%'.strtolower($searchFilter).'%' ));
【问题讨论】:
-
我们可以看到
The query -
@Hanky웃Panky 当然,添加了我现在正在使用的类似查询,但它没有给出我想要的结果。
-
提示:您可以在 PHP 中的字符串中使用换行符,在您的查询中也是如此。如果你这样做,它会让你自己更具可读性。