Php 选择单个找到的结果,并对其进行匹配
我试图从表行中获得一个结果 我正在使用这个查询Php 选择单个找到的结果,并对其进行匹配,php,mysql,match,against,Php,Mysql,Match,Against,我试图从表行中获得一个结果 我正在使用这个查询 "SELECT * FROM $tableName WHERE MATCH(nombre, mat1, mat2, mat3, mat4, mat5, mat6, mat7) AGAINST ('$busqueda' IN BOOLEAN MODE) ORDER BY nombre"; 如果在任何字段中找到$busqueda,这显然会选择该行的所有字段 有没有办法只选择搜索词所在的字段?匹配(nombre、mat1、mat2、mat3、mat
"SELECT * FROM $tableName WHERE MATCH(nombre, mat1, mat2, mat3, mat4, mat5, mat6, mat7)
AGAINST ('$busqueda' IN BOOLEAN MODE)
ORDER BY nombre";
如果在任何字段中找到$busqueda
,这显然会选择该行的所有字段
有没有办法只选择搜索词所在的字段?匹配(nombre、mat1、mat2、mat3、mat4、mat5、mat6、mat7)充当单个索引字段,因此当某些文本与之匹配时,它无法告诉您哪个位
您仍然可以像这样匹配整个排列的匹配速度,并对字段列表中的每个字段使用单独的match()
调用(在选择代替*
之后),检查特定级别的相关性,以检测匹配的字段
SELECT
IF(MATCH(nombre) AGAINST ('search phrase' IN BOOLEAN MODE) > 0.9, nombre, NULL) AS nombre,
IF(MATCH(mat1) AGAINST ('search phrase' IN BOOLEAN MODE) > 0.9, mat1, NULL) AS mat1
/* etc */
FROM myTable
WHERE MATCH(nombre, mat1, mat2, mat3, mat4, mat5, mat6, mat7)
AGAINST ('search phrase' IN BOOLEAN MODE)
ORDER BY nombre
不匹配的字段将返回空值,请注意,您可能也希望对单个字段使用FULLTEXT
索引。如果我没记错的话,使用布尔模式
不是绝对要求。$busqueda=“”;