搜索表MySQL&;PHP
我希望能够使用搜索字符串、url中的值搜索MySQL表,并将结果显示为XML输出 我想我已经从搜索字符串中获得了格式和声明变量 我的问题是搜索整个表,我已经查看了以前的答案,它们似乎都必须声明表中的每一列以进行搜索 例如,我的数据库布局如下所示:搜索表MySQL&;PHP,php,mysql,Php,Mysql,我希望能够使用搜索字符串、url中的值搜索MySQL表,并将结果显示为XML输出 我想我已经从搜索字符串中获得了格式和声明变量 我的问题是搜索整个表,我已经查看了以前的答案,它们似乎都必须声明表中的每一列以进行搜索 例如,我的数据库布局如下所示: **filesindex** -filename -creation -length -wall -playlocation 首先,以下各项是否合适: $query = "SELECT * FROM filesindex WHERE filename
**filesindex**
-filename
-creation
-length
-wall
-playlocation
首先,以下各项是否合适:
$query = "SELECT * FROM filesindex WHERE filename LIKE '".$searchterm."%'
UNION
SELECT * FROM filesindex WHERE creation LIKE '".$searchterm."%'
UNION
SELECT * FROM filesindex WHERE length LIKE '".$searchterm."%'
UNION
SELECT * FROM filesindex WHERE wall LIKE '".$searchterm."%'
UNION
SELECT * FROM filesindex WHERE location LIKE '".$searchterm."%'";
或者,理想情况下,是否有一种更简单的方法来搜索表,该方法只需较少的硬编码
有什么想法吗
谢谢
就像
一样,速度慢,效率低。如果您正在使用存储引擎,您可能需要考虑使用。
和或或链接搜索词。是的,如果你想让你的代码保持简单,你需要硬编码字段
$query = "SELECT * FROM filesindex WHERE filename LIKE '".$searchterm."%'
OR creation LIKE '".$searchterm."%'
OR length LIKE '".$searchterm."%'
OR wall LIKE '".$searchterm."%'
OR location LIKE '".$searchterm."%'";
查询可以这样重写
$query = "SELECT * FROM filesindex WHERE filename LIKE '".$searchterm."%'
OR creation LIKE '".$searchterm."%'
OR length LIKE '".$searchterm."%'
OR wall LIKE '".$searchterm."%'
OR location LIKE '".$searchterm."%'";
如果要查找其中一列包含搜索词的所有记录。而不是union,请使用或
:
$query = "SELECT *
FROM filesindex
WHERE filename LIKE '".$searchterm."%'
OR creation LIKE '".$searchterm."%'
OR length LIKE '".$searchterm."%'
OR wall LIKE '".$searchterm."%'
OR location LIKE '".$searchterm."%'";
但是--我建议使用基于文件的搜索系统,比如Zend Lucene,而不是MySQL