我有一个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
答案 0 :(得分:1)
尝试颠倒你检查字符串的方式:
"select * from persons
where '$searchtext' like concat('%',firstname,'%')
or '$searchtext' like concat('%',lastname,'%')
order by date desc
LIMIT $start,$per_page "
这会导致您的searchtext上包含firstname或lastname。
答案 1 :(得分:0)
没有通配符的LIKE完全匹配! 你需要 比如'kaitlyn%'
答案 2 :(得分:0)
我认为您的Sql查询错误 当你搜索全名(ermel lopez) 然后从您的查询中,在两列中搜索它。 但是整个文本不存储在列
中试试这个
$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 ");