我必须实现用户在搜索字段中输入一些文本的功能,我需要查询并从表中提取与该文本相关的项目。在表中,我有接近 8 列面向用户和 4 列每当插入通过前端发生时,它们就会自动插入。
下面是我写的查询,它通过mysql客户端工作,
select SQL_CALC_FOUND_ROWS *
from `database`.`ttable`
WHERE testdatetime BETWEEN '2012/05/01' and '2012/09/27'
and testimg IS NOT NULL
and testtitle LIKE 't%'
OR testname LIKE 't%'
OR testaddr LIKE 't%'
OR testph LIKE 't%'
OR testoffs LIKE't%'
OR testmaps LIKE 't%'
OR testimg LIKE 't%'
OR testdatetime LIKE 't%'
order by testdatetime desc;
现在由于某种原因,这个查询对我来说看起来有点奇怪,因为我正在检查每一列的值,并想检查这是否是实现它的正确方法,或者 mysql 有一些内置的特性,这些特性比这个查询产生更好的结果。如果有人可以指出正确的方向。由于我尚未实现此功能,我不知道它在性能方面的表现如何,但我知道 Like 子句在操作中有点密集。