1

我正在做这样的查询:

$c = filterfunction($_POST['data']);

$sql="(descripcion LIKE '%".$c."%' or marca_repuesto LIKE '%".$c."%' or mod_nombre LIKE '%".$c."%' or anio LIKE '%".$c."%' or codigo LIKE '%".$c."%' )";

$query = mysql_query("
SELECT id,user,modelo,marca,marca_repuesto,descripcion,tipo,anio,cantidad,precio_costo,precio_lista,chasis,motor,codigo
FROM (repuestos left join marcas ON marca = m_id
left join modelos ON modelo = mod_id)
$sql 

");

一切都很好,但是如果我在 repuestos.modelo 行中添加两个用“,”分隔的 id,则不起作用,而且我不知道如何使它与这一行中的多个 id 一起工作,非常感谢大家。

4

1 回答 1

0

从你的问题中你问的内容并不完全清楚。

如果要搜索单个匹配的 id,则需要

 WHERE id = ?   

如果要搜索多个匹配的 id,则需要

WHERE id IN (?,?,?,?)

另请注意,您的OR LIKE级联

    descripcion LIKE '%".$c."%' 
 or marca_repuesto LIKE '%".$c."%'
 or mod_nombre LIKE '%".$c."%' 
 or anio LIKE '%".$c."%' 
 or codigo LIKE '%".$c."%'

是灾难性糟糕表现的公式。MySQL(和任何 RDBMS)不能使用索引

 column LIKE '%value%'

所以它必须扫描整个表。当 MySQL 遇到OR它时,它会再次扫描表。

您可能希望调查此应用程序的全文搜索。

于 2013-09-21T23:37:58.473 回答