如何从出现单词的表中选择行?(MySQL+PHP)


How to select rows from a table where a word appears? (MySQL + PHP)

作为计算机科学工作的一部分,我必须搜索关键字。

我有几张DVD的名字和描述。

用户必须搜索一个单词,然后显示该单词出现在标题或描述中的DVD的所有名称。

比方说我的表中的列是"dvd标题"answers"描述",而该人输入的单词是$keyword。

如何在mysql中选择$keyword在"dvd title"answers"description"列中至少出现一次的行。

感谢阅读。感谢您的帮助。

你可以在这些列上创建一个全文索引,但这可能不是他们希望你做的

您需要通配符,对您来说,通配符与关键字LIKE而不是=进行比较。mysql中的通配符是%

SELECT * FROM mutable WHERE dvdtitle like '%keyword%' or description like '%keyword%';

至于使用PHP变量和创建字符串,您必须自己做一些功课。

$sql = "SELECT * FROM table_name WHERE dvdtitle LIKE '%".$keyword."%' OR description LIKE '%".$keyword."%'";

执行上述SQL查询将返回表中在列dvdtitledescription中具有指定关键字的所有行。

使用此查询:

SELECT  * 
FROM    table_name 
WHERE   dvd_title like '%$keyword%' 
OR      description like '%$keyword%'

您可以使用以下代码示例,它不是完整的代码,但会给您一个想法:

$query_str = "select * from dvd_table_name where dvd_title like '%$keyword%' or description like '%$keyword%'";
$qh = mysql_query($query_str);

然后使用mysql_fetch_assoc($qh)使用while循环检索数据;