【问题标题】:using search firstname and last name mixed php query使用搜索名字和姓氏混合的php查询
【发布时间】:2013-08-14 13:32:45
【问题描述】:

我有一个 SQL 查询命令。问题是当我输入一个人的全名时,它不会出现。例如,如果我搜索“ermel”,它将显示 ermel。但是,当我搜索“ermel lopez”时,它将无法输出查询。这是我的查询:

      $query=mysql_query("select * from persons where firstname like '%$searchtext%' or lastname like   '%$searchtext%' order by date desc
      LIMIT $start,$per_page ");   

我试过CONCAT,它可以工作,但不能在可执行文件上工作:

 SELECT *  
 FROM   persons 
 WHERE  CONCAT( firstname,  ' ', lastname ) LIKE 'kaitlyn' 
 OR     `LastName` LIKE  'pineda' 
 LIMIT 0 , 30

【问题讨论】:

    标签: php sql search output


    【解决方案1】:

    尝试反转检查字符串的方式,如下所示:

    "select * from persons 
    where '$searchtext' like concat('%',firstname,'%') 
       or '$searchtext' like concat('%',lastname,'%')
     order by date desc
    LIMIT $start,$per_page "
    

    这应该会导致您的搜索文本中包含名字或姓氏的匹配项。

    【讨论】:

    • 它正在工作,先生,唯一的问题是如果我搜索例如。我搜索 ermel 它不会显示,但如果我搜索全名 ermel lopez 它会显示?谢谢还有一个问题,我怎样才能做到这一点,以便如果用户输入关键字,它将像我发布的原始查询一样接受它@McSenstrum
    • 如果 FirstName=ermal 和 LastName = lopez,那么我的查询应该在 searchtext 'ermal'、'lopez' 或 'ermal lopez' 上找到匹配项。它还会在“ermal garcia”或“juan lopez”上找到匹配项。它只是搜索文本包含任何匹配的名字或姓氏的任何记录。
    • 是的,我可以使用它仅在名字和姓氏中查找关键字吗?如果我愿意,我还可以像您的答案一样搜索名字和姓氏? :D
    • 这是我的新问题。屏幕截图使其更容易:D [问题链接]stackoverflow.com/questions/18239282/…@McSenstrum
    【解决方案2】:

    没有通配符的 LIKE 是完全匹配的! 你需要 喜欢“凯特琳%”

    【讨论】:

    • kaitlyn 和 pinede 是我在表单上用 '%$searchtext%' 替换它的结果
    【解决方案3】:

    我认为你的 Sql Query 是错误的 当您搜索全名 (ermel lopez) 然后从您的查询中,在两列中搜索它。 但是整个文本不会存储在列中

    试试这个

    $searchtext1="ermel";

    $searchtext2="洛佩兹";

    $query=mysql_query("select * from persons where firstname like '%$searchtext1%' or lastname like '%$searchtext2%' order by date desc LIMIT $start,$per_page ");

    【讨论】:

    • 所以不可能做到这一点,我可以在其中使用 unite,所以名字和姓氏将像 show * from persons as result 这样组合在一个临时行中? @user2320325
    猜你喜欢
    • 2011-08-19
    • 1970-01-01
    • 2021-12-28
    • 1970-01-01
    • 2020-01-19
    • 1970-01-01
    • 1970-01-01
    • 2012-02-19
    • 2019-05-19
    相关资源
    最近更新 更多