在mysql查询和php中需要帮助

时间:2013-09-21 22:33:58

标签: php mysql explode implode

我正在做这样的查询:

$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,感谢很多人

1 个答案:

答案 0 :(得分: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时,它会再次扫描表。

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