2

很简单,我想在多列中使用 WHERE LIKE 时合并结果

$query = "SELECT T.Id_Servicio ids, 
            C.Nombre cliente, 
            T.T_Atencion atencion, 
            M.Nombre marca, 
            P.Nombre producto, 
            SU.Nombre subproducto, 
            T.Observaciones obs, 
            T.Estado edo
            FROM t_servicio T
            INNER JOIN cat_clientes C ON C.Id = T.Id_Cliente
            INNER JOIN cat_marcas M ON M.Id = T.Marca
            INNER JOIN cat_productos P ON P.Id = T.Producto
            INNER JOIN cat_subproducto SU ON SU.Id = T.SubProducto
            WHERE C.Nombre LIKE '%$termsearch%'
            OR T.T_Atencion LIKE '%$termsearch%'
            OR M.Nombre LIKE '%$termsearch%'
            OR P.Nombre LIKE '%$termsearch%'
            OR SU.Nombre LIKE '%$termsearch%'";

使用此指令,获取最后一个结果但不合并所有结果,这将是正确的陈述?

希望能帮到我!

4

3 回答 3

1

使用INNER JOIN你只会匹配那些相关的行。如果我猜对了,简单的切换LEFT JOIN会让你更快乐。最后,您可能还需要声明GROUP BY

于 2012-07-24T02:53:57.570 回答
1

Can you try this?

SELECT T.Id_Servicio ids, 
            C.Nombre cliente, 
            T.T_Atencion atencion, 
            M.Nombre marca, 
            P.Nombre producto, 
            SU.Nombre subproducto, 
            T.Observaciones obs, 
            T.Estado edo
            FROM t_servicio T
            LEFT JOIN cat_clientes C ON C.Id = T.Id_Cliente
            LEFT JOIN cat_marcas M ON M.Id = T.Marca
            LEFT JOIN cat_productos P ON P.Id = T.Producto
            LEFT JOIN cat_subproducto SU ON SU.Id = T.SubProducto
            WHERE C.Nombre LIKE '%$termsearch%'
            OR T.T_Atencion LIKE '%$termsearch%'
            OR M.Nombre LIKE '%$termsearch%'
            OR P.Nombre LIKE '%$termsearch%'
            OR SU.Nombre LIKE '%$termsearch%'

and what are you comparing to???? I assume that $termsearch is the entire string you want to search in SU.Nombre

于 2012-07-24T03:40:39.017 回答
0

LIKE '%$termsearch%' 应该是 LIKE '%' + @termsearch + '%'

于 2012-07-24T03:00:38.197 回答