如何添加2个MySQL列

时间:2015-02-18 16:50:58

标签: php mysql

我正在进行mysql搜索,其中也可以搜索用户名。 这是我的PHP(MySQL)代码:

SELECT * FROM feed_info WHERE ( first_name LIKE '%$search_content%' OR last_name LIKE '%$search_content%' OR email_id LIKE '%$search_content%' OR feed_area LIKE '%$search_content%' OR feed_date LIKE '%$search_content%')

但是,当我尝试搜索first namelast name两者时,例如 John Dalton ,它没有显示任何结果。我可以找到我只搜索first name last name的问题。但无法找到添加这两列的方法。

所以,我想要一种可以搜索first name last name的方法。 当有人搜索 John Dalton 时,它应显示结果

4 个答案:

答案 0 :(得分:1)

WHERE CONCAT(first_name,' ',last_name) LIKE '%$search_content%'

即;

WHERE CONCAT(first_name,' ',last_name) LIKE 'John Dalton'

这有用吗?

答案 1 :(得分:0)

这样的事情应该使用全文索引,使用MyIsam表

ALTER TABLE feed_info ADD FULLTEXT(first_name, last_name);
SELECT * FROM feed_info WHERE MATCH(first_name, last_name) AGAINST('John Dalton');

答案 2 :(得分:0)

前面的一小步是添加案例,其中要求姓名和姓氏:

SELECT * 
FROM feed_info 
WHERE ( first_name LIKE '%$search_content%' 
     OR last_name LIKE '%$search_content%' 
     OR email_id LIKE '%$search_content%' 
     OR feed_area LIKE '%$search_content%' 
     OR feed_date LIKE '%$search_content%'
     OR LOWER(first_name) + ' ' + LOWER(last_name) = LOWER('$search_content') )

这就是我想你要求的。但是你仍然无法搜索姓氏和电子邮件。

答案 3 :(得分:0)

尝试此查询!

$sql="SELECT * FROM feed_info where
MATCH (
first_name,last_name,email_id,feed_area,feed_date
)
AGAINST ('$search_content' IN BOOLEAN MODE)";

此查询用于mysql全文搜索。

如果此查询不起作用,请将表引擎更改为InnoDB 在Phpmyadmin中写下这个命令!

ALTER TABLE feed_info ENGINE=InnoDB;