1

我有一个 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
4

3 回答 3

1

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

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

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

于 2013-08-14T13:45:18.370 回答
0

没有通配符的 LIKE 是完全匹配的!你需要像'kaitlyn%'

于 2013-08-14T13:38:01.467 回答
0

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

尝试这个

$searchtext1="ermel";

$searchtext2= "lopez";

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

于 2013-08-14T13:56:31.203 回答