如何使用mysql进行关键字搜索

时间:2012-11-19 15:24:29

标签: php mysql

尝试在我的网站上创建关键字搜索。

我有一个搜索栏,并在其中键入一个关键字,如愤怒。我的网址现在 www.website.com/?s=ang=angry

如何在我的VARCHAR字段上对关键字进行mysql搜索查询?

感谢

4 个答案:

答案 0 :(得分:3)

您可以使用LIKEFull-Text Search *

  • 全文索引只能用于MyISAM(MySQL 5.5及之前版本)
  • 全文索引只能用于MyISAM和InnoDB(MySQL 5.6)

答案 1 :(得分:1)

PHP

$search = $_GET['s'];   //clean this up to avoid sql injection

的MySQL

SELECT * FROM MyTable
WHERE field1 LIKE '%search%' OR
      field2 LIKE '%search%' OR
      ...
      fieldn LIKE '%search%'

其中search应替换为用户输入的内容

答案 2 :(得分:0)

您可以在SQL语句中使用LIKE

$search = $mysqli->real_escape_string($_GET['s']);
$query = "select column from table where varchar_column like '%$search%'";

这将在VARCHAR列中找到所有搜索字符串的出现。

编辑:添加了有助于防止SQL注入的代码。显然,在将它们应用于生产环境时,应始终保护您的查询免受注入。

答案 3 :(得分:0)

首先,您必须从网址获取搜索字符串。这可以在带有$ _GET全局的php中完成。键代表网址的“s =”部分。

$search = $_GET['s'];

然后你需要创建一个MYSQL查询来搜索你的字段

SELECT * (or whatever column you need) FROM (table) WHERE (column) LIKE '%($search)%'

我建议使用PDO预处理语句来执行查询,以便$ search变量自动转义。

http://php.net/manual/en/book.pdo.php