我正在做这样的查询:
$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,感谢很多人
答案 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
时,它会再次扫描表。
您可能希望调查此应用程序的全文搜索。