如何添加2个MySQL列


how to add 2 MySQL columns

我正在进行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 namelast name的问题。但是找不到添加这两列的方法

因此,我想要一种方法来搜索first namelast name
例如。当有人搜索John Dalton时,它应该显示一个结果

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

即;

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

这有帮助吗。?

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

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

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

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') )

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

尝试此查询!

$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;